一道卡了我好几天的题目(题干绝不是你看起来的这么简单,因为并不是简单的空格判定)
我的做法:
#include <stdio.h>
#include <ctype.h>
#include <string.h>
#define MAX_NUM 128
int main()
{
char s[MAX_NUM]= {0};
int o=1;
fgets(s, MAX_NUM, stdin);
int len = (int)strlen(s);
if(s[0]>='a'&&s[0]<='z')//判断首字母
{
s[0] =s[0]-32;
}
if(s[o]=='d')//这里偷了个小懒,该判断可以省略
{
s[o]=s[o]-32;
}
for(int i=0; i<len; i++)
{
if(s[i]==' '||s[i] =='1'||s[i] =='2'||s[i] =='3'||s[i] =='4'||s[i] =='5'||s[i] =='6'||s[i] =='7'||s[i] =='8'||s[i] =='9'||s[i] =='0')//判断当前的字符是不是字母
{
if(s[i+1]>='0'&&s[i+1]<='9')//判断是不是下一个又是数字等其它字符
{
continue;
}
if(s[i+1]>='a'&&s[i+1]<='z')
{
s[i+1] -= 32;
}
}
}
printf("%s\n", s);
return 0;
}
本质上考了下我不太熟悉的if嵌套还有字符串,任重而道远啊~
标签:int,MAX,CP1023,大写,首字母,NUM,&&,include
From: https://www.cnblogs.com/harumakigohan686/p/17028512.html