2015-06-09 61 views
2

我想調用一個方法爲string增加一個空格。字符串參數條件

所以,因爲我改變string的長度,我認爲我不能這樣做addSpace("hello world");,相反,我必須把它定義爲char word[100] = "hello world",然後addSpace(word)。但是我有這麼多的例子,這將佔用很多空間,那麼即使我需要改變它,還有另一種方法可以讓string參數中的句子變成一個句子嗎?

+1

你能舉個例子嗎?恐怕準確的答案將取決於這些字符串從哪裏來 – Dleep

回答

2

如果你調用這樣的函數:addSpace("hello world");修改函數內部的參數是未定義的行爲。相反,你可以使參數的副本,並返回:

char* addSpace(const char* str) { 
    char* copy = malloc(strlen(str) + 2); // +1 for space, +1 for null terminator 
    if (copy != 0) { 
     // code to copy str to copy and add space 
    } 
    return copy; 
} 

只記得free返回的指針後和錯誤檢查返回值。