从scanf获取字符串的长度

时间:2016-03-30 23:24:02

标签: c string

我从用户那里得到一个字,我需要计算它的长度,但我似乎无法让strlen()sizeof()因某些原因而工作。我在这里做错了什么?

printf("Enter a word: ");
char word;
scanf("%c",&word);
printf("%i",strlen(word));

这看起来很简单,但是我无法打印出我的生命中字符串的长度。

1 个答案:

答案 0 :(得分:3)

问题是您尝试仅使用一个char存储来读取字符串。你可以存储的唯一字符串是null字符串(长度为零),即 word='\0'

增加字缓冲区的大小。 此外,strlen需要char*指针,而不是普通char

char word[100];
scanf("%s",word);    
printf("%i",strlen(word));