用字符指针指向从键盘输入的字符串,编写程序,计算输入的字待串的长度。输入结束时的换行符不作为字符计入其长度。(来用函数调用,指针作为参数)
时间: 2024-03-06 07:47:06 浏览: 11
好的,下面是对应的 C++ 代码:
```cpp
#include <iostream>
using namespace std;
int getLength(char* str);
int main() {
cout << "请输入一个字符串,以回车结束:" << endl;
char str[100];
cin.getline(str, 100); // 输入字符串
int len = getLength(str); // 计算字符串长度
cout << "该字符串长度为:" << len << endl;
return 0;
}
int getLength(char* str) {
int len = 0;
while (*str != '\0' && *str != '\n') { // 只要未到字符串末尾或换行符
len++; // 字符数加一
str++; // 指针指向下一个字符
}
return len;
}
```
这里使用函数 `getLength` 计算字符串长度,传入的参数是字符指针 `str`,表示待计算的字符串。函数中使用一个整型变量 `len` 记录字符数,初始值为 0。然后使用一个循环,只要未到字符串末尾或换行符,就将字符数加一,并将指针指向下一个字符。最后返回计数结果。注意,这里使用了 C++ 的字符串输入函数 `getline`,可以读取一行字符串,遇到换行符结束。
相关问题
用c语言写用字符指针指向从键盘输入的字符串,编写程序,计算输入的字待串的长度。输入结束时的换行符不作为字符计入其长度。(来用函数调用,指针作为参数)并标出代码作用
好的,下面是对应的 C 代码:
```c
#include <stdio.h>
int getLength(char* str);
int main() {
printf("请输入一个字符串,以回车结束:\n");
char str[100];
fgets(str, 100, stdin); // 输入字符串
int len = getLength(str); // 计算字符串长度
printf("该字符串长度为:%d\n", len);
return 0;
}
int getLength(char* str) {
int len = 0;
while (*str != '\0' && *str != '\n') { // 只要未到字符串末尾或换行符
len++; // 字符数加一
str++; // 指针指向下一个字符
}
return len;
}
```
这里使用函数 `getLength` 计算字符串长度,传入的参数是字符指针 `str`,表示待计算的字符串。函数中使用一个整型变量 `len` 记录字符数,初始值为 0。然后使用一个循环,只要未到字符串末尾或换行符,就将字符数加一,并将指针指向下一个字符。最后返回计数结果。
在 `main` 函数中,首先使用 `printf` 输出提示信息,然后使用 `fgets` 输入字符串,其中 `stdin` 表示从标准输入读取数据(即键盘输入)。接着调用 `getLength` 函数计算字符串长度,最后使用 `printf` 输出结果。
编写程序,键盘输入字符串是否为回文字符串 用c实现
当用户输入一个字符串时,我们可以使用C语言编写一个程序来判断该字符串是否为回文字符串。回文字符串是指正向和反向读取都相同的字符串。
下面是一个示例程序:
```c
#include <stdio.h>
#include <string.h>
int main()
{
char str[100];
int i, j, len, flag;
printf("请输入一个字符串:");
gets(str);
len = strlen(str);
flag = 1; // 假设为回文字符串
for (i = 0, j = len - 1; i < len / 2; i++, j--)
{
if (str[i] != str[j])
{
flag = 0; // 不是回文字符串
break;
}
}
if (flag == 1)
printf("是回文字符串\n");
else
printf("不是回文字符串\n");
return 0;
}
```
在这个程序中,我们首先使用 `gets()` 函数获取用户输入的字符串,并使用 `strlen()` 函数获取字符串的长度。然后,我们使用两个指针 `i` 和 `j` 分别从字符串的开头和结尾开始比较字符。如果任何一对字符不相等,我们将 `flag` 置为0,表示不是回文字符串。
最后,我们根据 `flag` 的值输出结果,如果 `flag` 为1,则表示是回文字符串,否则表示不是回文字符串。
需要注意的是,上述代码中使用了不安全的 `gets()` 函数来获取用户输入的字符串。为了避免缓冲区溢出,可以使用 `fgets()` 函数来替代 `gets()`,并且要注意处理输入字符串中的换行符。