Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 反转以逐字打印字符串?_C_String_Reverse - Fatal编程技术网

C 反转以逐字打印字符串?

C 反转以逐字打印字符串?,c,string,reverse,C,String,Reverse,例如: 你好,世界 奥利德洛 我试图同时使用strtok和strev函数,但我做不到。 我可以反转一个字符串,但不能像上面的例子那样逐字反转。首先,从开头开始(标记它),然后继续。当您点击空格或字符串结尾时,标记您的位置并执行以下操作: 往回走(从当前位置到最后一个标记),确保在取消引用指针时没有碰到无效的内存位置,并在到达该位置的过程中打印每个字符。转到步骤1,在停止的位置设置新的开始标记 继续前面的步骤,直到您完全读取了字符串。您应该使用string.h中的strtok()函数,只需从头

例如:

  • 你好,世界

  • 奥利德洛

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

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

往回走(从当前位置到最后一个标记),确保在取消引用指针时没有碰到无效的内存位置,并在到达该位置的过程中打印每个字符。转到步骤1,在停止的位置设置新的开始标记


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

您应该使用string.h中的strtok()函数,只需从头到尾打印每个标记即可。如果看起来很难将问题分解成更小的问题。例如,试着制作一个程序,反向打印字符串


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

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

  • 可以使用string.split()方法将字符串拆分为字符串数组,并使用空格作为除数
  • 反转数组中的每个字符串
  • Concat数组的所有字符串以创建与原始字符串相反的字符串

  • 我假设您已经熟悉设置strtok
    strtok
    ,如果不是直接询问的话。基本上,您需要将strtok设置为up,然后当它不返回NULL时,您必须将它返回的指针传递给strrev,然后用空格替换strtok设置的终止NULL。

    谢谢大家。我想我找到了答案,这个密码有效

    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;
        }
    

    我试着用strtok和strev。但我不能@MichaelPetrotta描述您尝试了什么、代码以及遇到了什么问题。细节越详细越好。我本想同时使用strok和strev函数,但我不能。我已经用c标记了这个问题。