c语言如何计算n行字符串的长度?

输入不超过 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不能限制长度,要人式控制长度不能越界。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-12-26
计算长度有两个函数:strlen sizeof
strlen 计算字符串里面一共有多少个字符
sizeof 计算字符串占的总内存空间
如:
char str[20]={"123456"};
strlen(str);等于 6
sizeof(str); 等于20
相似回答