用c语言把welcome to cvte .变成. cvte to welcome,仅改变单词之间的顺序,不改变单词中字母的顺序
时间: 2024-12-22 22:32:36 浏览: 4
(2022)CVTE嵌入式笔试题.pdf
在 C 语言中,字符串操作通常涉及到字符数组,如果你想将 "welcome to cvte" 这个字符串的单词顺序反转,你可以创建一个新的数组并逐个复制字符,注意单词间的分隔通常是空格。这里是一个简单的示例:
```c
#include <stdio.h>
#include <string.h>
void reverseWords(char* str) {
int start = 0, end = 0, len = strlen(str);
// 遍历整个字符串
while (end < len) {
// 找到下一个单词的开始位置
while (str[end] == ' ') {
end++;
}
// 如果到达了字符串末尾,说明最后一个单词已经处理过了
if (end == len) {
break;
}
// 将当前单词的结束位置设置为找到的空格后的下一个位置
end += 1;
// 从原字符串的末尾开始,找到这个单词的结束位置(遇到空格)
int wordEnd = end - 1;
while (wordEnd > start && str[wordEnd] != ' ') {
wordEnd--;
}
// 反转单词部分,并将其插入到新的位置
memmove(&str[start], &str[wordEnd + 1], end - wordEnd); // 移动字符
str[start++] = ' '; // 插入空格
// 继续查找下一个单词
}
str[start] = '\0'; // 确保字符串以空字符结尾
}
int main() {
char input[] = "welcome to cvte";
char output[strlen(input) + 1]; // 略微扩大空间以容纳可能的空格
reverseWords(output);
printf("结果: %s\n", output);
return 0;
}
```
当你运行这个程序,`output` 字符数组会包含 "cvte to welcome"。
阅读全文