用C语言指针 求字符串的长度
时间: 2024-04-29 20:22:32 浏览: 10
可以使用 C 语言中的 strlen() 函数来求字符串的长度,例如:
```
#include <stdio.h>
#include <string.h>
int main() {
char str[] = "Hello, world!";
int len = strlen(str);
printf("The length of the string is: %d\n", len);
return 0;
}
```
该程序使用 strlen() 函数来计算字符串 "Hello, world!" 的长度,并输出结果 "The length of the string is: 13"。注意,在使用 strlen() 函数时,需要首先包含头文件 string.h。
相关问题
c语言strlen求字符串长度
在C语言中,可以使用strlen函数来求字符串的长度。但是,strlen函数只能用于求以'\0'结尾的字符串的长度。如果字符串中没有'\0',那么strlen函数会一直向后读取内存,直到遇到'\0'为止,这样可能会导致程序崩溃。因此,我们可以自己编写一个函数来求字符串的长度。常见的方法有三种:普通版、指针运算版和递归版。
1.普通版:
这种方法比较简单,就是使用一个计数器,遍历字符串中的每一个字符,直到遇到'\0'为止。代码如下:
int my_strlen(char* str) {
int count = 0;
while(*str != '\0') {
count++;
str++;
}
return count;
}
2.指针运算版:
这种方法利用指针-指针可以求得字符串的长度。我们定义一个指针start指向字符串的首地址,然后遍历字符串中的每一个字符,直到遇到'\0'为止。最后,我们用当前指针str减去起始指针start,就可以得到字符串的长度。代码如下:
int my_strlen(char* str) {
char* start = str;
while (*str != '\0') {
str++;
}
return str - start;
}
3.递归版:
这种方法使用递归的思想,每次递归调用函数时,将指针向后移动一位,直到遇到'\0'为止。代码如下:
int my_strlen(char* str) {
if (*str == '\0')
return 0;
else
return 1 + my_strlen(str + 1);
}
c语言递归求字符串长度
以下是使用递归求字符串长度的C语言代码:
```c
#include <stdio.h>
int string_length(char *str) {
if (*str == '\0')
return 0;
else
return 1 + string_length(str + 1);
}
int main() {
char str[100];
printf("请输入一个字符串:");
scanf("%s", str);
printf("字符串长度为:%d\n", string_length(str));
return 0;
}
```
在上述代码中,`string_length()` 是递归函数,它接收一个指向字符串的指针 `str`,并返回字符串的长度。在函数内部,我们首先检查当前字符是否为字符串的结尾符 `\0`。如果是,则返回 0,表示字符串长度为 0。否则,我们将字符串指针向后移动一位,并递归调用 `string_length()` 函数来计算剩余字符串的长度。最后,将每个递归调用的结果相加,得到完整字符串的长度。在 `main()` 函数中,我们从用户那里获取输入字符串,并将其传递给 `string_length()` 函数来计算其长度。