c++用指针编写程序,当从键盘输入一个字符串后要求: (1)统计这个字符串的长度(用子函数,参数是字符指针,不能用strlen) (2)统计这个字符串中数字字符的个数(用子函数, 参数是字符指针) (3)能够将这个字符串的所有英文字符转换为对应的大写字母。(用一个子函数, 参数是字符指针)
时间: 2024-02-02 12:04:09 浏览: 90
以下是一个采用指针编程的 C++ 程序,可以完成上述要求:
```c++
#include <iostream>
#include <cctype>
using namespace std;
// 统计字符串长度的子函数
int strLength(char *str) {
int len = 0;
while (*str++) {
len++;
}
return len;
}
// 统计数字字符个数的子函数
int countDigits(char *str) {
int count = 0;
while (*str) {
if (isdigit(*str)) {
count++;
}
str++;
}
return count;
}
// 将英文字符转换为大写字母的子函数
void toUpper(char *str) {
while (*str) {
*str = toupper(*str);
str++;
}
}
int main() {
char str[100];
cout << "Enter a string: ";
cin.getline(str, 100);
// 统计字符串长度
int len = strLength(str);
cout << "Length of string: " << len << endl;
// 统计数字字符个数
int count = countDigits(str);
cout << "Number of digits: " << count << endl;
// 转换英文字符为大写字母
toUpper(str);
cout << "Uppercase string: " << str << endl;
return 0;
}
```
在这个程序中,我们首先定义了一个名为 `str` 的字符数组,并使用 `cin.getline()` 函数从用户输入中读取字符串。然后,我们定义了三个子函数来实现字符串长度、数字字符个数和英文字符转换的功能。在 `main()` 函数中,我们调用这三个子函数,并输出相应的结果。
其中,`strLength()` 函数使用一个指针变量来遍历字符串,并计算字符串的长度。`countDigits()` 函数也使用一个指针变量来遍历字符串,并使用 `isdigit()` 函数来判断当前字符是否为数字字符。`toUpper()` 函数同样使用一个指针变量来遍历字符串,并使用 `toupper()` 函数将英文字符转换为大写字母。
程序的输出为:
```
Enter a string: Abc123def456
Length of string: 12
Number of digits: 6
Uppercase string: ABC123DEF456
```
需要注意的是,我们在子函数中都使用了指针变量来遍历字符串,并使用指针操作符 `*` 来访问当前字符。指针变量的移动可以使用 `++` 或 `--` 运算符,也可以使用指针加上或减去一个整数值来实现。
阅读全文
相关推荐
![-](https://img-home.csdnimg.cn/images/20241231044930.png)
![-](https://img-home.csdnimg.cn/images/20241231044937.png)
![-](https://img-home.csdnimg.cn/images/20241231044833.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)
![](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)