ilość znaków w pliku - program w C
- qaz
- Użytkownik
- Posty: 486
- Rejestracja: 28 paź 2006, o 21:56
- Płeć: Kobieta
- Lokalizacja: Gobbos' Kingdom
- Podziękował: 311 razy
- Pomógł: 5 razy
ilość znaków w pliku - program w C
Potrzebuje program w C, który podaje ilość danego znaku (wskazanego przez użytkownika) w danym pliku tekstowym. Jakoś o ile juz mi sie co do C zaczelo rozjasniac, to ze stringami mam problem Dziekuje z góry za pomoc
- Emiel Regis
- Użytkownik
- Posty: 1495
- Rejestracja: 26 wrz 2005, o 17:01
- Płeć: Mężczyzna
- Lokalizacja: Kraków
- Podziękował: 71 razy
- Pomógł: 225 razy
-
- Użytkownik
- Posty: 374
- Rejestracja: 21 cze 2007, o 11:28
- Płeć: Mężczyzna
- Lokalizacja: Łostowice
- Pomógł: 146 razy
ilość znaków w pliku - program w C
Skopiowałem program sprzed kilku dni,
myślę, że się nadaje do tego zadania
myślę, że się nadaje do tego zadania
Kod: Zaznacz cały
#include <stdio.h>
#include <stdlib.h>
#include <strings.h>
#include <ctype.h>
/* Maksymalna dlugosc linii */
#define MAXLINIA 5000
/* Wyswietleni informacji o programie */
int oprogramie() {
static char sinfo[] =
"*** Program qaz
sposob wywolania
qaz plik_tekstowy szukany_znak
";
fputs(sinfo, stderr);
return 0;
}
/* dodaje znaki z lini do tablicy wystapien */
int zlicznaki(char *s, int tiznakow[]) {
int i; /* licznik petli */
if ((s != NULL) && (strlen(s) > 0)) {
for(i = 0; i < strlen(s); i++)
tiznakow[ (unsigned char) s[i] ]++;
}
return 0;
}
int main(int argc, char *argv[]) {
FILE *pfilein; /* Plik z danymi wejsciowymi */
char slinia[MAXLINIA];
int i; /* licznik petli */
int tiznakow[256]; /* Tablica zmiennych podliczjaca liczbe wystapien poszczegolnych znakow */
if (argc != 3) {
printf("podano niewlasciwa liczbe argumentow %i
", argc - 1);
oprogramie();
exit(1);
}
if (strlen(argv[2]) != 1) {
printf("Drugi argument powinien byc pojedynczym znakiem
");
oprogramie();
exit(1);
}
if ( (pfilein = fopen(argv[1], "rt")) == NULL) {
fprintf(stderr, "Nie udalo sie otworzyc pliku z danymi wejsciowymi %s
", argv[1]);
exit(1);
}
/* Wyzerowanie tablicy zliczjacej znaki */
for(i = 0; i < 256; i++)
tiznakow[i] = 0;
while (!feof(pfilein)) {
fgets(slinia, MAXLINIA, pfilein);
zlicznaki(slinia, tiznakow);
}
printf("Plik %s zawiera %i znakow %s.
", argv[1], tiznakow[(unsigned char) argv[2][0] ], argv[2]);
fclose(pfilein);
return 0;
}
- qaz
- Użytkownik
- Posty: 486
- Rejestracja: 28 paź 2006, o 21:56
- Płeć: Kobieta
- Lokalizacja: Gobbos' Kingdom
- Podziękował: 311 razy
- Pomógł: 5 razy
ilość znaków w pliku - program w C
ogólnie z majtkamiDrizzt pisze:Ależ wyznanie; )qaz pisze:to ze stringami mam problem
///
przy kompilacji wyswietla mi: "[Warning] backslash and newline separated by space "
-
- Użytkownik
- Posty: 374
- Rejestracja: 21 cze 2007, o 11:28
- Płeć: Mężczyzna
- Lokalizacja: Łostowice
- Pomógł: 146 razy
ilość znaków w pliku - program w C
to znaczy że na końcu linii zakończonych znakiem
za znakiem nie powinno już być spacji tylko od razu przejście do nowej linii.
Usuń spacje za znakami
albo wpisz opis w jednej linii.
za znakiem nie powinno już być spacji tylko od razu przejście do nowej linii.
Usuń spacje za znakami
Kod: Zaznacz cały
static char sinfo[] =
"*** Program qaz
sposob wywolania
qaz plik_tekstowy szukany_znak
";
- qaz
- Użytkownik
- Posty: 486
- Rejestracja: 28 paź 2006, o 21:56
- Płeć: Kobieta
- Lokalizacja: Gobbos' Kingdom
- Podziękował: 311 razy
- Pomógł: 5 razy
ilość znaków w pliku - program w C
zgadza sie Ale ...
Po włączeniu programu od razu zamyka jednak okno. Próbowałam z system("PAUSE"); ale albo w złe miejsce pcham albo to nie o to chodzi ... :/
A teraz widze, że tu jest sposób wywołania podany, ale to w konsoli linuxa bym sobie moze i poradzila, ale w Windzie to nie wiem jak wywoływać...
Wiec moze poprosze kogos, kto lubi pingwiny o kompilacje i sprawdzenie poprawnosci, a ja przyjme a priori
PS. Dziękuję wszystkim za pomoc
Po włączeniu programu od razu zamyka jednak okno. Próbowałam z system("PAUSE"); ale albo w złe miejsce pcham albo to nie o to chodzi ... :/
A teraz widze, że tu jest sposób wywołania podany, ale to w konsoli linuxa bym sobie moze i poradzila, ale w Windzie to nie wiem jak wywoływać...
Wiec moze poprosze kogos, kto lubi pingwiny o kompilacje i sprawdzenie poprawnosci, a ja przyjme a priori
PS. Dziękuję wszystkim za pomoc
-
- Użytkownik
- Posty: 374
- Rejestracja: 21 cze 2007, o 11:28
- Płeć: Mężczyzna
- Lokalizacja: Łostowice
- Pomógł: 146 razy
ilość znaków w pliku - program w C
po skompilowaniu programu w windows najlepiej
uruchom w tym samym katalogu wiersz poleceń i napisz z ręki
qaz.exe gaz.c a
w odpowiedzi powinna pojawić się liczba znaków a w pliku.
uruchom w tym samym katalogu wiersz poleceń i napisz z ręki
qaz.exe gaz.c a
w odpowiedzi powinna pojawić się liczba znaków a w pliku.