用C语言写编程求字符串(用字符数组表示)长度。(不允许调用 string.h 中的 strlen()函数) (1)编写 main 函数,实现之 (2)编写自定义函数实现之(需要用 main 函数,测试该自定义函数)
时间: 2024-12-28 13:39:30 浏览: 12
在C语言中,计算字符串长度的一种常见方法是遍历字符串,直到遇到空字符'\0',这表示字符串的结束。这里我将分别提供main函数直接计算长度以及自定义函数实现的方法。
**(1)直接在main函数中实现计算字符串长度**
```c
#include <stdio.h>
#include <string.h> // 尽管题目要求不使用strlen,但是这里为了演示如何获取实际长度还是需要这个头文件
int get_string_length(char str[]) {
int length = 0;
while (str[length] != '\0') { // 遍历字符串直到找到'\0'
length++;
}
return length;
}
int main() {
char str[100];
printf("请输入一个字符串: ");
fgets(str, sizeof(str), stdin); // 注意fgets处理回车符
str[strcspn(str, "\n")] = '\0'; // 删除fgets读取的换行符
int len = get_string_length(str);
printf("字符串 '%s' 的长度是 %d.\n", str, len);
return 0;
}
```
**(2)自定义函数实现,并在main函数中测试**
```c
#include <stdio.h>
// 自定义函数实现
int custom_get_string_length(char str[]) {
int length = 0;
while (str[length]) { // 直到遇到非空字符,注意这里使用str[length]而不是str[length] == '\0'
length++;
}
return length;
}
int main() {
char str[100];
printf("请输入一个字符串: ");
fgets(str, sizeof(str), stdin);
str[strcspn(str, "\n")] = '\0';
int len = custom_get_string_length(str);
printf("字符串 '%s' 的长度是 %d.\n", str, len);
// 测试自定义函数
char test_str[] = "Hello, World!";
int test_len = custom_get_string_length(test_str);
printf("字符串 '%s' 的长度是 %d.\n", test_str, test_len);
return 0;
}
```
在这个例子中,`custom_get_string_length`函数内部的条件稍有不同,仅检查是否为非空字符,因为我们已经确保了循环终止于`\0`。
阅读全文