用c语言从键盘输入一个字符串,输出这个字符串的长度(不能使用strlen)。
时间: 2024-02-13 09:06:17 浏览: 79
好的,这可以通过循环遍历字符串来实现。以下是一个示例代码:
```c
#include <stdio.h>
int main()
{
char str[100];
int len = 0;
printf("请输入一个字符串:");
scanf("%s", str);
// 计算字符串的长度
while (str[len] != '\0') {
len++;
}
// 输出字符串的长度
printf("字符串的长度为:%d\n", len);
return 0;
}
```
在这个代码中,我们首先定义了一个长度为100的字符数组`str`,并从键盘输入一个字符串保存在这个数组中。然后,我们使用一个`while`循环遍历这个字符串,计算出它的长度。具体来说,我们通过判断当前字符是否为字符串的结束符`\0`来判断循环何时结束。最后,我们输出字符串的长度。
需要注意的是,在使用`scanf`函数从键盘输入字符串时,需要保证输入的字符串长度不超过`str`数组的长度,否则会出现缓冲区溢出的问题。为了避免这个问题,可以使用`fgets`函数来输入字符串,具体方式可以参考下面的代码:
```c
#include <stdio.h>
#include <string.h>
int main()
{
char str[100];
int len = 0;
printf("请输入一个字符串:");
fgets(str, 100, stdin);
str[strlen(str) - 1] = '\0'; // 去掉fgets读入的换行符
// 计算字符串的长度
while (str[len] != '\0') {
len++;
}
// 输出字符串的长度
printf("字符串的长度为:%d\n", len);
return 0;
}
```
在这个代码中,我们使用了`fgets`函数来输入字符串,并且在字符串末尾添加了一个结束符`\0`。
阅读全文