-1

私はこれを試しましたが、うまくいきません:

char * remove_nl(char * newstr)
{
    newstr = strdup(newstr);
    newstr[strlen(newstr)-1] = '\0';
    return newstr;
}
4

1 に答える 1

5

現在持っているものは問題ありませんが、次の点を除きます。

  1. newstrが有効な文字列を指していることを確認する必要があります。
  2. それを確認してくださいstrlen(newstr) > 0
  3. newstr[strlen(newstr)-1]消去する前に、それが実際に改行であることを確認してください。
  4. 呼び出し元free()が返された文字列であることを確認してください。
于 2012-05-03T06:18:25.227 に答える