配列が空のスペースで終わっていない場合、コードの動作が異なるコードを書いています。最後にスペースがあるかどうかを確認したい。ない場合は、配列の末尾にスペースを追加します。ここに配列のコードがあります。
char* buffer[1024];
fgets(buffer,1024,fp);
char* str = buffer+2; // don't need the first two characters
char* pch;
pch = strtok(str," ");//I am dividing the string into tokens as i need to save each word in a separate variable
.
.
.
だから私の質問は、最初に、最後の文字がstr
スペースかどうかを確認するにはどうすればよいですか? 次に、スペースでない場合、スペースを追加するにはどうすればよいですか?
私はすでに試しstrcat
ましたが、最後の文字がスペースかどうかを知る方法がまだわからないことが問題だと思います。これはすべて、文字列とベクトルを使用して簡単に実行できることを知っています。しかし、コードの解決策が欲しいです。ありがとう!
編集: これは、行を分割して単語数をカウントするためのコードです。
//At the end of this while loop. ncol will contain the number of columns
while(1){
fgets(buffer,1024,fp);
if (buffer[1] == 'C'){ // the line is #C 1 2 3 4 5 6 7 8 9 10 11 12 13
char* str = buffer+2;
int n = strlen( str );
if(n == 0 || str[n-1] != ' ') {
str[n] = ' ';
str[n+1] = '\0';
}
char* pch;
pch = strtok(str," ");
while(pch != NULL){
ncol++;
pch = strtok (NULL, " ");
}
}
if(buffer[0] == '#'){
numHeader++;
}
else {break;}
}