用指针得到输入字符串长度
时间: 2024-06-21 15:02:03 浏览: 9
要用指针获取字符串长度,可以使用C语言的内置函数strlen(),也可以自己编写一个函数实现。下面是一个例子:
```c
#include <stdio.h>
int stringLength(char* str) {
int len = 0;
while (*str != '\0') {
len++;
str++;
}
return len;
}
int main() {
char str[100];
printf("请输入一个字符串:");
scanf("%s", str);
int len = stringLength(str);
printf("字符串长度为:%d\n", len);
return 0;
}
```
这个程序中,我们使用了一个自己编写的函数stringLength(),该函数接受一个字符指针作为参数,然后通过对指针进行操作来计算字符串的长度,最后返回计算出的长度。
相关问题
c语言输入字符串求字符串长度
C语言中有多种方法可以求字符串的长度。一种常见的方法是使用内置函数`strlen`来求字符串的长度,该函数在C语言中是自带的。我们只需要包含`<string.h>`头文件,并调用`strlen`函数即可。另外,我们也可以自己编写函数来求字符串的长度。有多种实现方式,比如使用临时变量、指针减指针和递归等。具体代码实现如下:
方法一:调用内置函数strlen求字符串长度
```c
#include <stdio.h>
#include <string.h>
int main() {
char s[] = "abc";
int len = strlen(s);
printf("%d", len);
return 0;
}
```
方法二:创建临时变量计算字符串长度
```c
#include <stdio.h>
int my_strlen(char* str) {
if(*str != '\0') {
return 1 + my_strlen(str + 1);
} else {
return 0;
}
}
int main() {
char s[] = "abc";
int len = my_strlen(s);
printf("%d", len);
return 0;
}
```
方法三:指针减指针求字符串长度
```c
#include <stdio.h>
int my_strlen(char* str) {
int count = 0;
while(*str != '\0') {
count++;
str++;
}
return count;
}
int main() {
char s[] = "abc";
int len = my_strlen(s);
printf("%d", len);
return 0;
}
```
方法四:不创建临时变量计算字符串长度(递归)
```c
#include <stdio.h>
int my_strlen(char* str) {
if(*str == '\0') {
return 0;
} else {
return 1 + my_strlen(str + 1);
}
}
int main() {
char s[] = "abc";
int len = my_strlen(s);
printf("%d", len);
return 0;
}
```
用指针方法求一个字符串长度,在main函数中输入字符串并输出长度
好的,可以参考以下代码实现:
```c
#include <stdio.h>
int str_len(char *str);
int main() {
char str[100];
printf("请输入一个字符串:");
scanf("%s", str);
int len = str_len(str);
printf("字符串长度为:%d\n", len);
return 0;
}
int str_len(char *str) {
int len = 0;
while (*str != '\0') {
len++;
str++;
}
return len;
}
```
这里定义了一个 `str_len` 函数,用来计算字符串长度。在 `main` 函数中,首先输入一个字符串,然后调用 `str_len` 函数计算字符串长度并输出。在 `str_len` 函数中,使用指针方法遍历字符串,遇到字符串结束符号 `\0` 时停止遍历并返回字符串长度。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![cpp](https://img-home.csdnimg.cn/images/20210720083646.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)