2014-11-21 22 views
0

我工作的一個計劃,我的基本的計算機科學類和這道題從用戶和字符串,採取的命令。然後,使用「reverse」反轉後面的字符串或「create」以打印隨後的字符串。反轉輸出應該保持字相反,然後打印後面的字符串反向。用C操作字符串與用戶輸入

/* for Reverse command */ 
else if(strcmp(str,"reverse ") > 0) 
{ 
    reverse(str); 
    printf("Reverse of string: %s\n", str); 
} 

下列函數被用於反轉字:

void reverse(char *string) 
{ 
    int length, i; 
    char *begin, *end, temp; 

    length = strlen(string); 

    begin = string; 
    end = string; 

    for (i = 0 ; i < (length - 1) ; i++) 
    end++; 

    for (i = 0 ; i < length/2 ; i++) 
    { 
     temp = *end; 
     *end = *begin; 
     *begin = temp; 

    begin++; 
    end--; 
    } 
} 

輸出反轉所有的話,並打印。有沒有辦法在字符串被傳遞給反向函數之前中斷字符串的反向部分?

+0

顯示代碼的一些輸出以及要輸出的內容。 – bitcell 2014-11-21 15:16:37

+0

發出命令:扭轉世界你好 反向字符串:dlrow 2009東海生日賀esrever – nerd4life 2014-11-21 15:17:42

+0

這就是實際發生或你的期望?請在你的問題中編輯。 – bitcell 2014-11-21 15:19:28

回答

1

之前調用該函數reverse,使用

char *ptr=strchr(str,' '); 
str=++ptr; 

從而切斷來自str 「反向」。需要包含string.h才能使用strchrstrchr字符串str,或者NULL如果字符是沒有發現 在指針返回到該字符' '的第一次出現。 ptr在將其分配給str以刪除字符串空間之前會增加一次。

+0

I 「分配給從輸入類型 '字符*' '的char [200]' 時不兼容的類型」 – nerd4life 2014-11-21 15:49:06

+0

我str變量被定義爲STR [200] – nerd4life 2014-11-21 15:49:39

+0

@ nerd4life,嘗試'的strcpy得到這個錯誤(STR,++ PTR) ;'而不是'str = ++ ptr;' – 2014-11-21 15:55:24