本帖最后由 WANGJIAO 于 2014-10-22 20:33 编辑
编译链接都没错但就是只能执行if下面的语句,其他的都不执行,为什么会这样?该怎么改?更多小问题见代码:PS:还有一个小问题:空格键到底是\0还是\t?
- //输入一英文句子,将其中所有单词首字符转换成大写后输出。(C语言)
- #include <stdio.h>
- #include <string.h>
- int main(int argc, const char * argv[]) {
- //提示输入句子
- printf("请输入句子:\n");
- //接收数据(这里的数据不确定,我就设一个最大值,不然没法继续,不知道这样对不对,还有没有更好的方法?)
- char str[100];
-
- scanf("%s",str);
- //首先判断第一个字母,并改写
- if (str[0]>='a'&&str[0]<='z') {
-
- printf("%c",str[0]-('a'-'A'));
- }else{
- printf("%c",str[0]);
- }
- //其次遍历所有字母,并找到符合条件的改写
- for (int i = 1; i<strlen(str); i++) {
- //找到空格,判断并改写空格下一个字母
- if (str[i+1] == '\0' &&str[i+2]>='a'&&str[i+2]<='z') {
-
- printf("%c",str[i+2]-('a'-'A'));
-
- } else {
-
- printf("%c",str[i+2]);
- }
-
- }
- return 0;
- }
复制代码
|