программа не работает. Я хочу перестроить содержимое текстового файла, например: a1b2c3
как - a1b2c3123
, цифры в конце файла
int counterc=0;
int counterd=0;
char rebuild[100];
char digits[100];
char c;
int i;
FILE *fp;
fp=fopen("1.txt","r");
if(fp==NULL)
{
printf("\nERROR: File not found for opening\n");
}
else
{
while(c=fgetc(fp))
{
if(c==EOF)
{
break;
}
if(isdigit(c))
{
counterd++;
strcat(digits,c);
}
else
{
counterc++;
strcat(rebuild,c);
}
}
}
fclose(fp);
printf("\nNumber of digits: %d ",counterd);
printf("\nNumber of characters: %d",counterc);
printf("\nThe content of digits[]: ");
for( i=0; i<3; i++)
{
printf("%s ",digits[i]);
}
return 0;
}
если я не использую strcat(rebuild,c)
, он напечатает мне количество символов, если я не использую strcat(digits,c)
, он напечатает мне количество цифр, почему я не могу собрать в массиве цифр символы, которые являются цифрами?
strcat()
предназначен для объединения двух строк, а не для добавления одного символа. Оба аргументаstrcat()
должны быть указателями. - person MikeCAT   schedule 25.10.2020printf("%s ",digits[i]);
тоже неправильно.%c
следует использовать для печати одного символа. - person MikeCAT   schedule 25.10.2020