少なくとも11文字と4桁の行を返すようなプログラムを書いています。私は変数の種類と何かを混乱させたと思いますが、私はそれをどのように修正すべきかを理解できません。与えられた文字数の行を表示する
temp[i]=line;
とline
は同様に読み取るためにループ内で使用されます。
#include <stdio.h>
#include <ctype.h>
#include <string.h>
int main()
{
char line[200];
char *temp[200];
int i = 0, k=0;
printf("Enter a string: \n");
while(fgets(line, sizeof(line),stdin))
{
int numberAlpha = 0;
int numberDigit = 0;
int i;
for(i=0; i<strlen(line); i++){
if(isalpha(line[i])) numberAlpha++;
else if(isdigit(line[i])) numberDigit++;
}
if(numberAlpha+numberDigit>10 && numberDigit>3){
temp[i]=line;
i++;
}
}
while(temp[k]!='\0'){
printf("%s", temp[k]);
k++;
}
return 0;
}
バイ解決することができます。悲しいことに、それが指す文字列は次の行で上書きされます。 'strdup'を見てください。 –