用c++用指针编写程序,当从键盘输入一个字符串后要求统计这个字符串的长度(用子函数,参数是字符指针,不能用strlen)
时间: 2024-02-27 12:55:14 浏览: 115
好的,我可以为您提供一个用指针编写的C++程序,来统计输入字符串的长度。这个程序使用了一个子函数来计算字符串的长度,参数是字符指针,而不是使用 strlen 函数。下面是程序的代码:
```c++
#include <iostream>
using namespace std;
int str_len(char *str)
{
int len = 0;
while (*str != '\0')
{
len++;
str++;
}
return len;
}
int main()
{
char str[100];
cout << "请输入一个字符串: ";
cin.getline(str, 100);
int len = str_len(str);
cout << "该字符串的长度是: " << len << endl;
return 0;
}
```
在这个程序中,我们定义了一个子函数 `str_len`,它接受一个字符指针作为参数,用于计算字符串的长度。该函数通过循环计算字符指针所指向的字符是否为字符串结束符 `\0`,如果不是,则累加长度并将指针指向下一个字符,直到遇到结束符为止。
在 `main` 函数中,我们首先定义了一个字符数组 `str`,用于存储输入的字符串。然后使用 `cin.getline` 函数从标准输入流中读取字符串。最后,我们调用 `str_len` 函数计算字符串的长度,并输出结果。
希望这个程序能够解决您的问题!
相关问题
用c++用指针编写程序,当从键盘输入一个字符串后要求统计这个字符串中数字字符的个数(用子函数, 参数是字符指针)
好的,我理解了你的问题。以下是 C++ 代码实现:
```c++
#include <iostream>
using namespace std;
int countDigits(char* str) {
int count = 0;
while (*str != '\0') {
if (*str >= '0' && *str <= '9') {
count++;
}
str++;
}
return count;
}
int main() {
char str[100];
cout << "请输入一个字符串: ";
cin.getline(str, 100);
int count = countDigits(str);
cout << "数字字符的个数为: " << count << endl;
return 0;
}
```
在上面的代码中,我们定义了一个 `countDigits` 函数,它的参数是一个字符指针,用于统计其中数字字符的个数。在 `main` 函数中,我们通过 `cin.getline` 从键盘输入一个字符串,并将其传递给 `countDigits` 函数进行统计。最后,我们输出数字字符的个数。
使用c++3.用指针编写程序,当从键盘输入一个字符串后要求: (1)统计这个字符串的长度(用子函数,参数是字符指针,不能用strlen)
可以使用指针算法来统计字符串的长度。指针算法的基本思路是,用一个指针指向字符串的开头,然后不断递增指针,直到指向字符串的结尾,统计指针移动的步数即可得到字符串的长度。
以下是一个示例代码,使用指针算法统计字符串的长度:
```
#include <iostream>
using namespace std;
int strLength(char *str) {
int len = 0;
while (*str != '\0') {
len++;
str++;
}
return len;
}
int main() {
char str[100];
cin >> str;
int len = strLength(str);
cout << "字符串的长度为:" << len << endl;
return 0;
}
```
在这个代码中,`strLength` 函数使用指针算法统计字符串的长度,`while` 循环中的条件为指针指向的字符不是字符串的结尾符 `\0`,每次循环指针 `str` 和计数器 `len` 都会递增。最后,函数返回计数器 `len` 的值,即字符串的长度。
在 `main` 函数中,首先从键盘读入一个字符串,然后调用 `strLength` 函数统计字符串的长度,并输出结果。
阅读全文