使用c++3.用指针编写程序,当从键盘输入一个字符串后要求: (1)统计这个字符串的长度(用子函数,参数是字符指针,不能用strlen)
时间: 2024-02-27 19:55:19 浏览: 88
可以使用指针算法来统计字符串的长度。指针算法的基本思路是,用一个指针指向字符串的开头,然后不断递增指针,直到指向字符串的结尾,统计指针移动的步数即可得到字符串的长度。
以下是一个示例代码,使用指针算法统计字符串的长度:
```
#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` 函数统计字符串的长度,并输出结果。
相关问题
使用c++3.用指针编写程序,当从键盘输入一个字符串后要求:(2)统计这个字符串中数字字符的个数(用子函数, 参数是字符指针)
好的,我来帮您编写这个程序。下面是实现过程:
```cpp
#include <iostream>
using namespace std;
// 统计数字字符个数的子函数
int count_num(char* str)
{
int count = 0;
while (*str != '\0') {
if (*str >= '0' && *str <= '9') {
count++;
}
str++;
}
return count;
}
int main()
{
const int MAX_LEN = 100; // 定义字符串最大长度
char str[MAX_LEN]; // 定义字符数组
cout << "请输入一个字符串:" << endl;
cin.getline(str, MAX_LEN); // 输入字符串
int num_count = count_num(str); // 调用子函数统计数字字符个数
cout << "数字字符的个数为:" << num_count << endl;
return 0;
}
```
以上程序中,我们定义了一个名为 `count_num` 的子函数,用于统计字符串中数字字符的个数。在 `main` 函数中,我们先定义了一个字符串数组 `str`,并通过 `cin.getline` 函数从键盘读入一个字符串。然后,我们调用 `count_num` 函数统计字符串中数字字符的个数,并将结果输出。
需要注意的是,在 `count_num` 函数中,我们使用了指针来遍历字符串中的每一个字符,如果该字符是数字字符,则计数器加一。最终,我们返回计数器的值作为统计结果。
使用c++3.用指针编写程序,当从键盘输入一个字符串后要求:(3)能够将这个字符串的所有英文字符转换为对应的大写字母。(用一个子函数, 参数是字符指针)
好的,我来帮您编写这个程序。下面是实现过程:
```cpp
#include <iostream>
#include <cstring>
using namespace std;
// 将英文字符转换为大写字母的子函数
void upper_case(char* str)
{
while (*str != '\0') {
if (*str >= 'a' && *str <= 'z') { // 如果是小写字母
*str = *str - ('a' - 'A'); // 转换为对应的大写字母
}
str++;
}
}
int main()
{
const int MAX_LEN = 100; // 定义字符串最大长度
char str[MAX_LEN]; // 定义字符数组
cout << "请输入一个字符串:" << endl;
cin.getline(str, MAX_LEN); // 输入字符串
upper_case(str); // 调用子函数将英文字符转换为大写字母
cout << "转换后的字符串为:" << str << endl; // 输出转换后的字符串
return 0;
}
```
以上程序中,我们定义了一个名为 `upper_case` 的子函数,用于将字符串中的英文字符转换为大写字母。在 `main` 函数中,我们先定义了一个字符串数组 `str`,并通过 `cin.getline` 函数从键盘读入一个字符串。然后,我们调用 `upper_case` 函数将字符串中的英文字符转换为大写字母。最后,我们输出转换后的字符串。
需要注意的是,在 `upper_case` 函数中,我们使用了指针来遍历字符串中的每一个字符,如果该字符是小写字母,则将其转换为对应的大写字母。
阅读全文