将一句话中的单词倒置,标点符号不倒换,利用C++语言的数组生成代码
时间: 2024-03-18 22:39:53 浏览: 57
好的,以下是利用 C++ 语言的数组生成代码将一句话中的单词倒置的示例:
```cpp
#include <iostream>
#include <string>
#include <cstring>
using namespace std;
int main() {
string sentence = "Hello, world! This is an example.";
// 将句子转换为 C 风格字符串
char c_sentence[sentence.size() + 1];
strcpy(c_sentence, sentence.c_str());
// 将句子分割成单词并存储到数组中
char* words[100];
char* word = strtok(c_sentence, " ");
int i = 0;
while (word != NULL) {
words[i++] = word;
word = strtok(NULL, " ");
}
// 倒置单词并输出结果
cout << "Reversed sentence: ";
for (int j = i - 1; j >= 0; j--) {
cout << words[j] << " ";
}
cout << endl;
return 0;
}
```
运行以上代码输出结果为:
```
Reversed sentence: example. an is This world! Hello,
```
其中,利用 `strcpy()` 方法将 `string` 类型的句子转换为 C 风格字符串,然后通过 `strtok()` 方法将句子分割成单词并存储到一个字符指针数组中。最后,通过循环倒置单词并输出结果。
阅读全文