最开始一直没能解决scanf遇空格或tab结束这个问题,后面在网上查了一下下面用的方法。输出的时候直接默认输出第一个字符,和输出前一个字符为空格的字符即可。

#include<stdio.h>
#include<string.h>
int main(){
    int i;
    char s[5000];
    scanf("%[^\n]",s);//吸收空格 
    for(i=0;i<strlen(s);i++){
        if(s[i]>='a'&&s[i]<='z'){
            s[i]=s[i]-32;
        }
    }
    for(i=0;i<strlen(s);i++){
        if(s[i-1]==' '||i==0){
            printf("%c",s[i]);
        }
    }
}

如果是python的话,直接调用函数就很方便了:

s=input().upper()
lists=s.split(" ")
for z in lists:
    print(z[0],end='')