编写一个类似库函数strlen()的函数,求字符串的长度,在main()函数中输入一个字符串,调用该函数后输出结果。要求函数的形参采用指针变量。c语言
时间: 2023-12-14 20:37:46 浏览: 89
可以使用指针遍历字符串,直到遇到字符串结束符'\0',统计遍历的次数即为字符串长度。具体实现如下:
```c
#include <stdio.h>
int my_strlen(char* str) {
int len = 0;
while (*str != '\0') {
len++;
str++;
}
return len;
}
int main() {
char str[100];
printf("请输入字符串:");
scanf("%s", str);
printf("字符串长度为:%d\n", my_strlen(str));
return 0;
}
```
注:此处使用scanf输入字符串可能存在缓冲区溢出的问题,生产环境应该使用fgets等函数来进行字符串输入。
相关问题
编写一个类似库函数strlen()的函数,求字符串的长度,在main()函数中输入一个字符串,调用该函数后输出结果。要求函数的形参采用指针变量
可以使用指针变量来实现类似库函数 `strlen()` 的函数,求字符串的长度。下面是一个示例代码:
```c
#include <stdio.h>
int my_strlen(char *str) {
int len = 0;
while (*str++) {
len++;
}
return len;
}
int main() {
char str[100];
printf("请输入一个字符串:");
scanf("%s", str);
int len = my_strlen(str);
printf("字符串的长度为:%d\n", len);
return 0;
}
```
在函数 `my_strlen()` 中,使用一个 `while` 循环遍历字符串,每次判断指针变量 `str` 所指向的字符是否为 `'\0'`(字符串的结束符),如果不是则将指针变量 `str` 向后移动一位,并将计数器 `len` 加1。当遍历到字符串的结束符时,循环退出,函数返回计数器 `len` 的值,即为字符串的长度。
在 `main()` 函数中,首先定义一个字符数组 `str`,并使用 `scanf()` 函数从标准输入中读取一个字符串。然后调用函数 `my_strlen()`,并将字符数组 `str` 的首地址作为参数传递给函数。最后输出函数返回的字符串长度即可。
需要注意的是,字符串的长度不包括字符串的结束符 `'\0'`。
c语言编写一个类似库函数strlen()的函数,求字符串的长度,在main()函数中输入一个字符串,调用该函数后输出结果。要求函数的形参采用指针变量。
可以按照以下方式编写一个类似库函数`strlen()`的函数,实现求字符串长度的功能。
```c
#include <stdio.h>
int my_strlen(char *s) {
int len = 0;
while (*s != '\0') {
len++;
s++;
}
return len;
}
int main() {
char s[100];
printf("请输入一个字符串:");
scanf("%s", s);
int len = my_strlen(s);
printf("该字符串的长度为:%d\n", len);
return 0;
}
```
在这个程序中,我们先定义了一个函数`my_strlen()`,该函数的形参采用指针变量,用于指向需要求长度的字符串。在函数中,我们通过循环遍历字符串中的每一个字符,并且每遍历一个字符,就将长度加1。最后,我们返回计算出的长度。
在`main()`函数中,我们首先输入一个字符串,然后调用`my_strlen()`函数求出其长度,并输出结果。需要注意的是,在输入字符串时,我们使用了`scanf()`函数,这样可以避免输入的字符串中包含空格等特殊字符的问题。
阅读全文