键盘输入一个字符串,编写代码获取字符串的长度并输出,要求使用字符指针实现
时间: 2024-09-20 20:17:54 浏览: 71
在C语言中,使用字符指针遍历字符串可以获取其长度。以下是一个简单的示例,演示如何通过字符指针计算字符串长度:
```c
#include <stdio.h>
#include <string.h> // 引入strlen函数
int main() {
char str[100]; // 假设字符串最多有99个字符
fgets(str, sizeof(str), stdin); // 从键盘读取字符串,包括换行符
int length = 0;
char* ptr = str; // 初始化指向字符串起始位置
while (*ptr != '\0') { // 遍历直到遇到字符串结束符'\0'
length++; // 每次遇到非空字符,长度加一
ptr++; // 移动到下一个字符
}
printf("字符串长度为:%d\n", length);
return 0;
}
```
在这个例子中,我们首先声明了一个字符数组`str`,然后用`fgets`函数从标准输入读取用户输入。接下来,我们创建一个字符指针`ptr`指向`str`的开始。在`while`循环中,只要指针`ptr`所指向的不是字符串结束符`\0`,我们就增加`length`并移动`ptr`。最后,输出字符串的长度。
相关问题
编写一个函数 reverseString,用于反转一个字符串。要求使用字符指针实现。 输入: 从键盘输入一个字符串,以回车结束。假设输入的字符串长度不超过100.一
以下是 C++ 代码实现:
```
#include <iostream>
using namespace std;
void reverseString(char* str) {
int len = strlen(str);
for (int i = 0; i < len / 2; i++) {
char temp = str[i];
str[i] = str[len - i - 1];
str[len - i - 1] = temp;
}
}
int main() {
char str[101];
cin.getline(str, 101); // 读取一行字符串
reverseString(str);
cout << str << endl;
return 0;
}
```
首先在主函数中定义一个字符数组 str,用 getline 读取一行字符串。然后调用函数 reverseString,将字符串反转。
函数 reverseString 接受一个字符指针作为参数,使用 strlen 函数获取字符串的长度 len。循环遍历字符串的前一半,依次交换对称位置上的字符,实现字符串反转。
最后在主函数中输出反转后的字符串。
从键盘输入一个字符串,实现利用字符指针将字符串的字符顺序逆置并输出。(例如输入abcdef,输出fedcba)。请编写相应的程序代码,并调试运行出正确结果。
下面是实现该功能的 C 语言代码:
```c
#include <stdio.h>
#include <string.h>
int main()
{
char str[100];
printf("请输入一个字符串:");
scanf("%s", str);
int len = strlen(str);
char *p = str + len - 1; // 指向字符串最后一个字符的指针
printf("逆置后的字符串:");
while (p >= str) {
printf("%c", *p); // 输出当前指向的字符
p--; // 指针前移
}
printf("\n");
return 0;
}
```
程序运行时,会提示用户输入一个字符串,然后利用 `strlen` 函数获取字符串的长度,再利用字符指针将字符串的字符顺序逆置,最后输出逆置后的字符串。
阅读全文