字符串的处理

来源:互联网 发布:昆明行知中学 编辑:程序博客网 时间:2024/06/08 19:49

[问题描述]

[解题思路]

     读取字符串时,用scanf()读入,会自动忽略空格,根据字符串的内容来判断是否大写,如果是第一个字母,则默认其前面有一个'.',故大写;如果','或者 '!'后面是小写字母,则变为大写字母 。输出时,两个字符串之间,再添加一个空格 

[代码实现]

#include <stdio.h>#include <string.h>int main(){char str[100];char s[100][100];char c,ch;int i,j,count;count=0;/*读入字符串,直到没有输入内容。并记下读取字符串的个数(读取到的字符串没有空格) */while(scanf("%s",&str)!=EOF){strcpy(s[count],str);count++;}c='.';/*默认第一个字符串前是一个'.' ,c变量是用来记录当前字符的上一个字符 */for(i=0;i<count;i++){for(j=0;j<strlen(s[i]);j++){/*如果上一个字符是'.', '!'则判断当前字符是否为小写字母,如果是,则变为大写*/if(c=='.' || c=='!') {ch=s[i][j];if(ch>=97 && ch<123){ch=ch-32;       /*变为大写减32*/s[i][j]=ch;}}c=s[i][j];}/*两个字符串之间用1个空格隔开,最后一个字符串后面没有空格 */if(i<count-1)printf("%s ",s[i]);else printf(s[i]);}return(0);}


1 0
原创粉丝点击