c语言逆序输出的单词
时间: 2024-04-12 10:22:30 浏览: 174
以下是C++实现英文句子中的单词逆序输出的方法:
```cpp
#include <iostream>
#include <string>
#include <vector>
using namespace std;
int main() {
string s;
getline(cin, s); // 读入一行字符串
vector<string> words; // 存储单词
string word;
for (int i = 0; i < s.size(); i++) {
if (s[i] == ' ') { // 遇到空格,将单词存入vector中
words.push_back(word);
word = "";
} else {
word += s[i];
}
}
words.push_back(word); // 将最后一个单词存入vector中
for (int i = words.size() - 1; i >= 0; i--) { // 逆序输出单词
cout << words[i] << " ";
}
return 0;
}
```
相关问题
c语言英语单词逆序输出
以下是C语言实现单词逆序输出的代码示例:
```c
#include <stdio.h>
#include <string.h>
void reverse(char *begin, char *end) {
char temp;
while (begin < end) {
temp = *begin;
*begin++ = *end;
*end-- = temp;
}
}
void reverseWords(char *s) {
char *word_begin = NULL;
char *temp = s;
while (*temp) {
if ((word_begin == NULL) && (*temp != ' ')) {
word_begin = temp;
}
if (word_begin && ((*(temp + 1) == ' ') || (*(temp + 1) == '\0'))) {
reverse(word_begin, temp);
word_begin = NULL;
}
temp++;
}
reverse(s, temp - 1);
}
int main() {
char s[] = "hello world"; printf("Original string: %s\n", s);
reverseWords(s);
printf("Reversed string: %s\n", s);
return 0;
}
```
运行结果为:
```
Original string: hello world
Reversed string: world hello
```
在C语言中输入N个单词,建立单链表,逆序存储这些单词,然后从头节点开始遍历输出(递归实现)
好的,以下是在C语言中实现输入N个单词,建立单链表,逆序存储这些单词,然后从头节点开始遍历输出的代码示例:
首先,我们需要定义一个单链表节点的结构体,其中包含单词和指向下一个节点的指针:
```c
struct Node {
char word[20];
struct Node* next;
};
```
然后,我们可以编写一个函数来读取N个单词并创建单链表。在读取单词时,我们可以使用C语言的输入函数,例如scanf。每当我们读取一个单词时,我们就可以创建一个新节点并将其添加到链表的开头。这样,我们就可以保证链表中的单词是逆序的。
```c
struct Node* createList(int N) {
struct Node* head = NULL;
for (int i = 0; i < N; i++) {
char word[20];
scanf("%s", word);
struct Node* newNode = (struct Node*)malloc(sizeof(struct Node));
strcpy(newNode->word, word);
newNode->next = head;
head = newNode;
}
return head;
}
```
接下来,我们可以编写一个递归函数来遍历链表并输出单词。该函数将从头节点开始,递归地调用自身来输出链表中的每个单词。当节点为NULL时,递归将停止。
```c
void traverse(struct Node* node) {
if (node != NULL) {
traverse(node->next);
printf("%s ", node->word);
}
}
```
最后,我们可以将这些函数组合在一起并测试它们:
```c
int main() {
int N;
scanf("%d", &N);
struct Node* head = createList(N);
traverse(head);
return 0;
}
```
这样,我们就可以输入N个单词,创建逆序的单链表,并递归地输出它们。
阅读全文