设计函数 void printStart(char *str, char ch),已知字符串 str 中只包含由小写字母 组成的单词和空格,且首尾字符都不是空格,相邻两个单词之间有且只有一个空格,要求在屏幕输出 str 中所有以小写字母 ch 开头的单词,且以空格分隔。
时间: 2024-03-25 08:41:15 浏览: 89
可以按照以下步骤实现函数 printStart:
1. 定义一个指针 p,初始化为 str。
2. 利用 while 循环遍历整个字符串 str,直到 p 指向字符串的末尾。
3. 对于每个单词,判断其首字母是否为 ch,如果是,则输出该单词并在其后添加一个空格;否则,继续遍历下一个单词。
4. 最后输出一个换行符,表示输出结束。
根据上述思路,可以编写如下的函数实现:
```c
void printStart(char *str, char ch) {
char *p = str;
while (*p != '\0') {
// 跳过单词前面的空格
while (*p == ' ') {
p++;
}
// 查找单词结尾位置
char *q = p;
while (*q != ' ' && *q != '\0') {
q++;
}
// 判断单词首字母是否为 ch
if (*p == ch) {
// 输出单词并添加一个空格
while (p < q) {
putchar(*p);
p++;
}
putchar(' ');
} else {
// 跳过该单词
p = q;
}
}
putchar('\n');
}
```
可以在主函数中调用该函数进行测试,例如:
```c
int main() {
char str[] = "hello world, how are you doing today?";
printStart(str, 'h');
return 0;
}
```
该程序输出:
```
hello how
```
阅读全文