输入不超过 100行的字符串,计算每一行字符串的长度并输入。 每一行的字符串长度不超过80个。
由于本题的输入的字符串中,有可能存在空格,所以建议使用 gets 来读取一整行。
scanf("%d", &n);
getchar();
上面的代码表示读入输入的行数并保存到n, getchar() 用于读取这个整数后面的换行符,以保证循环中的 gets 从下一行读取。
第1行是 n,接下来是n行字符串(感谢)
代码文本:
#include "stdio.h"
#include <string.h>
int main(int argc,char *argv[]){
char s[100][81];
int i,n;
printf("Enter n(int 0<n<101)...\nn=");
if(scanf("%d",&n)!=1 || n<1 || n>100){
printf("Input error, exit...\n");
return 0;
}
printf("Please enter %d strings...\n",n);
getchar();
for(i=0;i<n;i++)
fgets(s[i],81,stdin);//代替gets(s[i]);,能限制长度为80
for(i=0;i<n;i++)
printf("The string %d's length is %d.\n",i+1,strlen(s[i]));
return 0;
}
追问你好请问为什么这个运行出来以后结果总会比实际大一个数值呢?
追答用fgets接收的字符串,最后把打入的回车也接收了,所以测出的长度看起来要多一个。你改为gets就没有这事了,但gets不能限制长度,要人式控制长度不能越界。