将上述代码中的hello word示例改成手动输入一串字符
时间: 2024-12-29 11:35:28 浏览: 11
当然可以,如果你想让用户手动输入源字符串,你可以在`main()`函数里使用`scanf()`或`fgets()`函数获取输入。这里是修改后的代码:
```c
#include <stdio.h>
#include <string.h>
// 函数声明
void copy_vowels(char* source, char* target);
// 判断字符是否为元音
int is_vowel(char c) {
return (c == 'a' || c == 'A' ||
c == 'e' || c == 'E' ||
c == 'i' || c == 'I' ||
c == 'o' || c == 'O' ||
c == 'u' || c == 'U');
}
// 主函数
int main() {
char source[100]; // 扩展为能容纳更多字符,假设用户输入不超过99个字符
char target[50]; // 假设目标字符串最大长度为49(包含终止符'\0')
// 获取用户输入
printf("请输入一串字符:");
fgets(source, sizeof(source), stdin); // 使用fgets避免换行符干扰
// 移除末尾的换行符
source[strlen(source) - 1] = '\0';
copy_vowels(source, target);
printf("原始字符串: %s\n", source);
printf("含有元音后的字符串: %s\n", target);
return 0;
}
// 实现copy_vowels函数
void copy_vowels(char* source, char* target) {
int i = 0; // 源字符串索引
while (source[i]) { // 遍历直到遇到字符串结束符
if (is_vowel(source[i])) {
target[i] = source[i]; // 将元音复制到目标
target[++i] = '\0'; // 确保目标字符串有正确的终止符
} else {
target[i] = '\0'; // 如果不是元音,则直接结束
}
i++;
}
}
```
现在你可以运行这个程序,然后手动输入一串字符,它会把其中的元音复制到另一个字符串中。
阅读全文