反向逐字打印字符串?

时间:2011-02-21 21:16:33

标签: c string reverse

示例:

  • Hello World

  • olleH dlroW

我试图一起使用strtok和strrev函数,但我不能。 我可以反转一个字符串,但我不能像上面的例子那样逐字。

5 个答案:

答案 0 :(得分:1)

首先,从头开始(标记)并继续前进。当您点击空格或字符串结尾时,请标记您的位置并执行以下操作:

向后(从当前位置到最后一个标记),确保在取消引用指针时打不到无效的内存位置,并在那里打印每个字符。转到步骤1,在您离开的位置设置新的开始标记。

继续前面的步骤,直到您完全读完字符串。

答案 1 :(得分:1)

您应该使用string.h中的strtok()函数,并从头到尾打印每个令牌。如果看起来很难干破小问题。例如,尝试制作一个反向打印字符串的程序。

如果您提供一些代码,我们将能够为您提供更好的帮助。

答案 2 :(得分:0)

取决于您使用的编程语言。 如果使用c#那么

  1. 您可以使用string.split()方法将字符串拆分为字符串数组,并将空格作为分隔符。
  2. 反转数组中的每个字符串
  3. Concat所有数组的字符串创建原始的反向。

答案 3 :(得分:0)

我假设您已经熟悉设置strtok,如果不是只是问。基本上你需要设置strtok,然后当它不返回NULL时,你必须将它返回的指针传递给strrev,然后替换{{1}所放置的终止NULL带空格。

答案 4 :(得分:0)

谢谢你们所有人。我想我找到了答案,这段代码很有用。

int main ()
    {
        char string[100];
        char*word;

        printf("your sentence: \n");
        gets(string);
        word=strtok(string," ");

        while(word!=NULL){
        strrev(word);
        printf("%s ",word);
        word=strtok(NULL," ");
        } 
        getch();
      return 0;
    }