下面函数的功能是计算指针p所指向字符串的长度(即实际字符的个数)。请把函数补充完整使其符合要求。要求:在主函数中输入字符串的具体内容,通过调用MyStrLen函数计算字符串的长度,并输出。把代码编写完整。 unsigned int MyStrLen( char * p)
时间: 2024-12-02 08:17:07 浏览: 41
在C语言中,计算指针所指向字符串的长度可以遍历直到遇到空字符'\0'。这是字符串结束的标志。以下是完整的函数定义以及主函数调用的例子:
```c
#include <stdio.h>
#include <string.h> // 包含strlen函数
// 完整的函数定义,计算并返回字符串长度
unsigned int MyStrLen(char *p) {
while (*p != '\0') { // 遍历直到找到空字符
p++; // 移动指针到下一个字符
}
return p - strlen(p); // 返回到空字符的位置减去strlen,因为strlen会自动跳过空字符
}
int main() {
char str[100]; // 声明一个足够大的数组来存放输入的字符串
printf("请输入字符串:");
fgets(str, sizeof(str), stdin); // 读取一行字符串,包括空格
str[strcspn(str, "\n")] = '\0'; // 清除fgets添加的换行符
unsigned int length = MyStrLen(str);
printf("字符串 '%s' 的长度是:%u\n", str, length);
return 0;
}
```
在这个代码中,`MyStrLen`函数通过循环移动指针`p`,直到遇到空字符`\0`。此时,指针`p`就指向了字符串的结尾。然后我们返回`p`位置减去`strlen(p)`的结果,这是因为`strlen`会单独计数空字符,而我们的`MyStrLen`不需要。
阅读全文
相关推荐


















