黑马程序员技术交流社区
标题:
输入英文语句,单词首字符转换大写后输出
[打印本页]
作者:
huh
时间:
2016-1-1 09:37
标题:
输入英文语句,单词首字符转换大写后输出
/*
main.m
输入英文语句,单词首字符转换大写后输出
分析:
如何判断英文语句里面,哪些是单词?空格两边得都是单词
如何判断单词的首字母为大写?*p>='A'
语句的首字母判断,
1)为空,继续循环
2)大写,继续循环
3)小写,转换为大写!(*p-32)
如果检测到了空格就使下一个字母变为大写!()
注意:
gets() 和scanf()的区别
1.不同点:
scanf不能接受空格、制表符Tab、回车等;
而gets能够接受空格、制表符Tab;
2.相同点:
字符串接受结束后自动加'\0'。
*p 和 p 的区别
p存放的是地址,
*p是让程序去那个地址取出数据
*/
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {
printf("请输入英文...\n");
char a [100];
char *p = a;
gets(p);//scanf( "%[^\n]", c); 表示可以存放除了 \n 外的其他所有字符。
//语句的首字母判断
if(*p==' '){//是空格
p++;
}else if(*p>='A'&&*p<='Z'){//是大写
p++;
}else if(*p>='a'&&*p<='z'){
*p-=32;//*p = *p-32
p++;
}
while (*p!='\0') {//语句没结束,就循环
if(*p!=' '){
p++;
}else if(*p ==' '){
p++;
if (*p>='a' && *p<='z') {
*p-=32;
}
}
}
puts(a);//打印
return 0;
}
复制代码
作者:
15931110616
时间:
2016-1-1 11:02
谢谢分享。
作者:
zf147
时间:
2016-1-1 22:08
谢谢分享。
作者:
foolishlovepig
时间:
2016-1-1 22:35
知道scanf的另一种用法
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2