![]() |
#2
fydgo2009-12-23 14:06
#include <iostream>
#include <cstring> #include <cctype> main() { using namespace std; char string[25]; char string1[15]; char string2[10]; int i,j; cout<<"enter first string"; cin.getline(string1,15); cout<<"enter second string"; cin.getline(string2,10); string[0]=toupper(string1[0]); //第一个大写字母赋给string// for(j=i=1;string1[i]!='\0';) { if(isalpha(string1[i])) { string[j]=tolower(string1[i]); //把字母赋给// i++;j++; } else if(isdigit(string1[i])) //把数字赋给// { string[j]=string1[i]; i++;j++; } else if(string1[i]==' ') //把空格赋给// { { string[j]=string1[i]; i++;j++; } while(string1[i]==' ') //如果是连续的空格就继续,直到不是空格位置// { i++; } } } string[j]=' '; j++; for(i++,j=0;string2[j]!='\n';) { if(isalpha(string2[i])) { string[j]=tolower(string2[i]); i++;j++; } else if(isdigit(string2[i])) { string[j]=string2[i]; i++;j++; } else if(string1[i]==' ') { { string[j]=string2[i]; i++;j++; } while(string1[i]==' ') { i++; } } } string[j]='\0'; for(j=0;string[j]!='\0';j++) cout<<string; } 这是我刚自己写的但不行啊,高手帮忙 |
我是刚学的,学到字符串,做综合题时候遇到麻烦,请教高手。
程序要求读入一个最长100个字符的句子。对这个句子进行调试,输出间距正确,且首字母正确大写的结果。换言之,在输出句子中国,有两个或者更多空格构成的所有字符串都必须压缩成一个空格。句子以大写字母开头。但除此之外不能再有其他任何大写字母(专业名词也是)。将换行符视为一个空格,您需要将任意数量的换行符压缩成单独一个空格。假定句子以一个句点符号结尾,而且句子中没有其他句点。列入
the Answer to life, the Universe, and everything
IS 42
所生成的输出是
The answer to life,the universe,and everything is 42.
这题对我来说有几个难点,怎么把多个空格压缩成一个空格&&怎么检查第一个以外都是小写字母。
请高手指点,谢谢