、あなたは先頭の空白について尋ねますが、あなたの例では、末尾の空白を示しています。あなたが最後の空白を意味している場合、あなたはそれをこのように行うことができます:
#include <stdio.h>
#include <string.h>
#define BUFFER_SIZE 25
int main() {
char string[BUFFER_SIZE];
memset(string, ' ', BUFFER_SIZE - 1); // initialize with spaces
string[BUFFER_SIZE - 1] = '\0'; // terminate properly
if (fgets(string, BUFFER_SIZE, stdin) != NULL) {
size_t length = strlen(string);
string[length - 1] = ' '; // replace the newline \n
if (length < BUFFER_SIZE - 1) {
string[length] = ' '; // replace extra '\0' as needed
}
printf("'%s'\n", string); // extra single quotes to visualize length
}
return 0;
}
USAGE
> ./a.out
this is a test
'this is a test '
>
をあなたが実際にスペースが保存されていた見ることができるように単一引用符のみが追加されました。 @BLUEPIXYのアプローチは、既存の空白を保存することについて具体的に尋ねた入力に新しい空白を追加する点を除いて、完璧な意味を持ちます。
先頭の空白を保持したい場合は、おそらく同様に行うことができます。
あなたの質問は既に回答済みです。http://stackoverflow.com/questions/122616/how-do-i-trim-leading-trailing-whitespace-in-a-standard-way – denis
http://ideone.com/ lJaJnJ – BLUEPIXY
@BLUEPIXY始めに二重引用符が見えて、どうすればそれらを取り除くことができますか?私はもともとそれらを望んでいなかった – Fenomatik