Zdravim...
jake by bylo podle vas nejidealnejsi reseni pro jednoduchej program, ktery by nacetl z txt souboru radky a ty radky ve kterych by byl stejny pocet malych a velkych by vypsal na obrazovku ?!?! v cistym C :skunk2:
Fórum › C / C++
Soubory
Jockie napsal:
Zdravim...
jake by bylo podle vas nejidealnejsi reseni pro jednoduchej program, ktery by nacetl z txt souboru radky a ty radky ve kterych by byl stejny pocet malych a velkych by vypsal na obrazovku ?!?! v cistym C :skunk2:
jockie.txt
Aa bb
AA bb
AAA bbb
jockie.c
#include <stdio.h>
#include <stdlib.h>
#define JOCKIE_MAX 256
int main(int argc, char *argv[])
{
if(argc < 2){
fprintf(stderr, "Too little count of input parameters");
return 1;
}
FILE *fin = fopen(argv[1], "r");
if(!fin){
perror("This error has occured");
return errno;
}
char line[JOCKIE_MAX];
for(;fgets(line, JOCKIE_MAX, fin);){
int count_l =0;
int count_b = 0;
char *pch;
for(pch = line; *pch; pch ++){
if((*pch >='a') && (*pch<='z')) count_l ++;
if((*pch >='A') && (*pch<='Z')) count_b ++;
}
if(count_l == count_b)
printf("%s", line);
}
fclose(fin);
return 0;
}
------------------------------------------
vystup:
C:Dev-Cpp>jockie jockie.txt
jockie.txt
AA bb
AAA bbb
C:Dev-Cpp>
Jockie napsal:
char *pch;
for(pch = line; *pch; pch ++){
if((*pch >='a') && (*pch<='z')) count_l ++;
if((*pch >='A') && (*pch<='Z')) count_b ++;
}
Mohl by si mi prosim vysvetli ten cykl for ?? co presne to dela ?? Dik :P
Nu pch bude ukazovat na ten řádek - resp. na jeho první písmeno., to se pomocí (*pch) zkontroluje zda je velký nebo malý - a incrementuje se příslušný počítadlo.
Nu a pak se pch zvětší o "jedna" - a jelikož je to pointer tak se použije pointerová aritmetika - samotná pch se nezvýší o jedna (jak by se mohlo zdát) ale o sizeof(char) - pch pak bude ukazovat až na další písmenko, dokud nenajede na konec. (*pch) bude null (resp. spíš bych porovnal s '?' ) - což je ukončovací znak řetězce.
Zjistit počet nových příspěvků
Přidej příspěvek
Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
Uživatelé prohlížející si toto vlákno
Uživatelé on-line: 0 registrovaných, 104 hostů
Podobná vlákna
Jak provázat soubory, když chci využít třídu A pro objekt B a každá… — založil PazziCZ
... soubory — založil koudis
Moderátoři diskuze