本题要求实现一个函数,将p所指字符串中每个单词的首字母字母改成大写,大写字母及非字母不变化。(这里的“单词”是指由一个或者多个空格隔开的字符串)。 函数接口定义: void Conv( char *p );
时间: 2024-03-27 17:36:29 浏览: 68
好的,我的回答如下:
可以使用一个循环来遍历字符串中的每一个字符,如果当前字符是字母并且前一个字符是空格或者当前字符是字符串的第一个字符,那么就将这个字母转换成大写字母。具体实现代码如下:
```cpp
void Conv(char *p) {
int i = 0;
while (p[i] != '\0') {
if (isalpha(p[i]) && (i == 0 || p[i-1] == ' ')) {
p[i] = toupper(p[i]);
}
i++;
}
}
```
在这个函数中,`p`是指向字符串的指针。函数的实现思路就是利用 `isalpha` 函数判断当前字符是否是字母,利用 `toupper` 函数将字母转换成大写字母。需要注意的是,为了判断当前字符是否是字符串的第一个字符,需要在循环中特判一下。
阅读全文