写一个接收用户输入的包含三个单词的字符串, 每个单词用空格隔开,要求检测到空格后, 将它后面的单词第一个字母和最后一个字母调换位置(用指针完成)用C语言
时间: 2024-09-18 11:04:42 浏览: 61
C++常用输入
在C语言中,你可以创建一个函数来接收用户输入的字符串,并使用指针操作来交换每个单词的第一个字母和最后一个字母。以下是一个简单的示例:
```c
#include <stdio.h>
#include <string.h>
// 函数定义,接受指向字符串的指针,并在原地修改
void swapFirstAndLastChar(char* word) {
if (word[1] != '\0') { // 检查单词长度至少有两个字符
char temp = word[0]; // 保存第一个字母
word[0] = word[strlen(word)-1]; // 将最后一个字母移动到第一个位置
word[strlen(word)-1] = temp; // 将临时变量放回最后一个位置
}
}
int main() {
char input[100];
printf("请输入一个由三个单词组成的字符串(每个单词用空格隔开):");
fgets(input, sizeof(input), stdin); // 接收用户输入,不包括换行符
// 分割字符串为单词
char* token = strtok(input, " ");
while (token != NULL) {
// 检查是否还有两个单词可以处理
if (strtok(NULL, " ") != NULL) {
swapFirstAndLastChar(token);
printf("%s ", token); // 输出已调整的单词
}
token = strtok(NULL, " ");
}
return 0;
}
```
这个程序会首先提示用户输入字符串,然后使用`strtok()`函数按空格分割字符串,并对每个单词应用`swapFirstAndLastChar()`函数。注意,此代码不会处理用户输入的前导空格,如果需要更严谨的处理,可以在读取输入后去掉前导空格。
阅读全文