Help!文字列(名前)からイニシャルを取得するプログラム、すべての空白を取り除くことはできません
#include <stdio.h>
//CS50 Library for 'get_string() user input'
#include <cs50.h>
#include <string.h>
#include <ctype.h>
int main(void){
printf("Enter your name: ");
//User input for string
string s = get_string();
int i = 0;
//Determine whether the first chars are space - if not print char
if(s[0] != isspace(s[0])){
printf("%c",s[0]);
}
//loop through each Char - determine char is not space
while(s[i] != '\0'){
if(s[i] == ' '){
//if i'th char is space - add one to it thus printing char that comes after space
printf("%c", toupper(s[i+1]));
}
//advance i'th char count
i++;
}
printf("\n");
}
ときI入力「ジョン・ジェラルド・スミス」:私はすべてのイニシャルをつかむためにC言語でプログラムを書いています - - 私はポインタについては何ので、それらから離れて滞在しようとすることができますを知っていない、これは私がこれまで持っているものですプログラムは "JGB"で戻ってきますが、 "John gerald smith"(複数のスペース)のようなものを入力しようとすると、スペースが削除されないようです。私はまだ出力の頭文字を取得するが、私はそれがすべてのスペースを印刷していないことを確認する必要があります。助けてください!これは宿題なので、私は答えを手渡すとは思っていませんが、誰かが私にそれをどうおこなうかについての情報を私に与えることができたら、私はそれを高く評価します。ありがとう!
だけを見てはいけません現在の文字だけでなく、NEXT文字がスペースでないかどうかを示します。境界チェックに注意してください(文字列の最後を過ぎないようにしてください) – meisen99