how to perform reversing a sentence Word by Word in C?

后端 未结 12 1446
伪装坚强ぢ
伪装坚强ぢ 2021-01-25 04:49
#include 

int main(void)
{
  int i,j;
  int wordstart = -1;
  int wordend = -1;
  char words[]= \"this is a test\";
  char temp;

  // Reverse each word
         


        
12条回答
  •  灰色年华
    2021-01-25 04:49

    #include
    #include
    
    void reverse(char *str, size_t len)
    {
        char tmp;
        size_t beg, end;
        if (len <=1) return;
    
        for (beg=0,end=len; beg < --end ; beg++) {
            tmp = str[beg];
            str[beg] = str[end];
            str[end] = tmp;
        }
    }
    
    int main(void)
    {
        char sentence[] = "one two three four five";
        size_t pos, len;
    
        printf("Before:%s\n",sentence);
        for (pos = len= 0;  sentence[pos]; pos += len) {
            pos += strspn( sentence+pos, " \t\n" );
            len = strcspn( sentence+pos, " \t\n" );
            reverse ( sentence + pos, len );
            }
        reverse ( sentence , pos );
    
        printf("After:%s\n",sentence);
    
        return 0;
    }
    

提交回复
热议问题