用c++编写函数void transform(char *s),该函数将参数s传入的字符串中每个单词的首字符改为对应的大写字母,首字符后的字母都改为对应的小写字母,转换后的字符串仍存储在s指向的内存中。在main函数中,从键盘输入字符串,然后调用transform函数,再将转换后的字符串输出到屏幕上。(说明:假定每个单词之间除了空格没有其他符号,即不用考虑I’m之类的情况)
时间: 2024-02-27 15:57:20 浏览: 84
好的,以下是用 C++ 编写的 `transform` 函数的实现:
```c++
#include <iostream>
#include <cstring>
#include <cctype>
void transform(char *s) {
// 遍历字符串
for (int i = 0; s[i] != '\0'; i++) {
// 如果是单词的首字母
if (i == 0 || s[i-1] == ' ') {
// 转换为大写字母
s[i] = toupper(s[i]);
} else {
// 转换为小写字母
s[i] = tolower(s[i]);
}
}
}
int main() {
char s[100];
std::cout << "请输入字符串:";
std::cin.getline(s, 100);
transform(s);
std::cout << s << std::endl;
return 0;
}
```
在这个例子中,我们定义了一个名为 `transform` 的函数,该函数接受一个指向字符数组的指针 `s`,表示要转换的字符串。该函数遍历字符串,如果当前字符是单词的首字母,则将其转换为大写字母,否则将其转换为小写字母。最后,该函数将转换后的字符串存储在 `s` 指向的内存中。
在 `main` 函数中,我们首先从键盘输入字符串,并将其存储在字符数组 `s` 中。然后调用 `transform` 函数对字符串进行转换,并将转换后的字符串输出到屏幕上。
需要注意的是,我们在使用标准库函数 `getline` 从键盘输入字符串时,将字符串长度限制为 100,以避免数组越界的问题。
阅读全文