如何在C++中反转给定的句子(字符串)?

Ben*_*Ben 3 c++ arrays string variable-assignment

示例:如果输入是DOGS LIKE CATS输出 - CATS LIKE DOGS

我认为我必须只使用:If-else条件,而for循环,数组,字符串和函数.NOT字符串函数,指针和动态内存分配和结构.空间也需要与示例相同.

我试着做以下但是它不起作用你可以帮忙吗?

void revSent(char str[]){
char temp[100];
int k;
for (i=sentenceSize ; i>0 ; i--)
    for (k=0 ; k<sentenceSize ; k++)
        temp[k]=str[i];

for (k=0 ; k<sentenceSize ; k++)
    if (temp[k]!=' ')
        for (i=k ; i>0 ; i--)
            printf("%c", temp[i]);

}
Run Code Online (Sandbox Code Playgroud)

Pau*_*l R 9

在没有任何其他数据结构的情况下就地这样做很容易:

  1. 反转整个字符串:DOGS LIKE CATS- >STAC EKIL SGOD

  2. 反转字符串中的每个单词:STAC EKIL SGOD- >CATS LIKE DOGS

提示:您可以对(1)和(2)使用相同的功能.


Pau*_*aul 5

您可以实现以下内容以获得解决方案:

  1. 将句子分成单词列表.
  2. 反转此列表.
  3. Concat这个列表一起形成了句子.