输出 若第一个串sl是第二个串s2的子串,则输出(sl)is substring of(s2) 否则,若第二个串s2是第一个串sl的子串,输出(s2)is substring of(sl) 否则,输出No substring。 样例输入 abc dddncabca 样例输出 abc is substring of dddncabca #include<bits/stdc+.h>/IC++的万能头文件 using namespace std; int main() string sl; string s2; int flagl =0,flag2=0; getline(cin,sl)月 getline(cin,s2;/∥.总串 int xl=s2.find(sl,0:/在s2中查找sl串 cout<<"x1="<<x1 <<endl; while(x1 s2.size()) if(x1 !s2.npos) flagl++; } x1++: xl=s2.find(sl,xl)方 int x2 =s1.find(s2,0); cout <<"x2="<<x2 <<endl: while(x2 s1.size()) if(x2 !s1.npos)
输出 若第一个串 s1 是第二个串 s2 的子串,则输出(s1) is substring of (s2) 否则,若第二个串 s2 是第一个串 s1 的子串,输出(s2) is substring of (s1) 否则,输出 No substring。 样例输入 abc dddncabca 样例输出 abc is substring of dddncabca #include <bits/stdc++.h> //C++的万能头文件 using namespace std; int main() { string s1; string s2; int flag1 = 0,flag2 = 0; getline(cin,s1); getline(cin,s2); //总串 int x1 = s2.find(s1,0); //在 s2 中查找 s1 串 cout << "x1= " <<x1 <<endl; while( x1 < s2.size()) { if( x1 != s2.npos) { flag1++; } x1 ++ ; x1 = s2.find(s1,x1); } int x2 = s1.find(s2,0); cout << "x2=" << x2 <<endl; while( x2 < s1.size()) { if( x2 != s1.npos) {
flag2++; x2++; x2=s1.find(s2,x2); if(flag1 =0&&flag2==0) cout <<sl<<"is substring of "<<s2 <endl; else if(flag2 !=0&&flag1 =0) cout <<s2<<"is substring of"<<sl <endl: } else cout <<"No substring"<<endl: return 0; 91.7-24统计单词的长度 输入一行单词序列,相邻单词之间由1个或多个空格间隔,请对应地计算各个单词的长度。 注意,如果有标点符号(如连字符,逗号),标点符号算作与之相连的词的一部分。没有被 空格间开的符号串,都算作单词。 输入 一行单词序列,最少1个单词,最多300个单词,单词之间用至少1个空格间隔。单词序列 总长度不超过1000。 输出 依次输出对应单词的长度,之间以逗号间隔。 样例输入 She was born in 1990-01-02 and from Beijing city. 样例输出 3,3,4,2,10,3,4,7,5 方法一: #include<bits/stdc+.h>/C++的万能头文件 using namespace std; int main()
flag2++; } x2 ++ ; x2 = s1.find(s2,x2); } if( flag1 != 0 && flag2==0) { cout << s1 << " is substring of " << s2 << endl; } else if( flag2 != 0 && flag1 == 0) { cout << s2 << " is substring of "<< s1 << endl; } else { cout << "No substring" <<endl; } return 0; } 9 1.7--24 统计单词的长度 输入一行单词序列,相邻单词之间由 1 个或多个空格间隔,请对应地计算各个单词的长度。 注意,如果有标点符号(如连字符,逗号),标点符号算作与之相连的词的一部分。没有被 空格间开的符号串,都算作单词。 输入 一行单词序列,最少 1 个单词,最多 300 个单词,单词之间用至少 1 个空格间隔。单词序列 总长度不超过 1000。 输出 依次输出对应单词的长度,之间以逗号间隔。 样例输入 She was born in 1990-01-02 and from Beijing city. 样例输出 3,3,4,2,10,3,4,7,5 方法一: #include <bits/stdc++.h> //C++的万能头文件 using namespace std; int main()
char s1[1001]; int count=0;/记录单词长度 intb[10001:/存放每个单词的长度 gets(sl)方 int i; intj=0; int n=strlen(s1); s1[]='":∥在字符串最后添加空格,方便判定最后一个单词,统一处理 for(i=0:i<=n:i++) if(sli]!=) { count++; else if(count:>0)/防止连续的空格,所以加一个count>:0的条件 b[j]=count; j+: count=0;/∥下一个单词,重新计数 for(i=0;i<=j-2;i++) cout<<b[i]<<"" cout<b[-1]<end;/输出时最后一个单词后面没有逗号 101.7-25输出第1个最长的单词和第1个最短单词。 描述 输入1行句子(不多于200个单词,每个单词长度不超过100),只包含字母、空格和逗号。 单词由至少一个连续的字母构成,空格和逗号都是单词间的间隔。 试输出第1个最长的单词和第1个最短单词。 输入
{ char s1[1001]; int count = 0 ; //记录单词长度 int b[1000]; //存放每个单词的长度 gets(s1); int i; int j = 0; int n = strlen(s1); s1[n] = ' '; //在字符串最后添加空格,方便判定最后一个单词,统一处理 for(i = 0 ; i <= n ; i ++) { if(s1[i] != ' ') { count ++; } else if( count > 0 ) //防止连续的空格,所以加一个 count>0 的条件 { b[j] = count; j ++; count = 0; //下一个单词,重新计数 } } for(i = 0 ; i <=j-2 ; i ++) { cout << b[i] << ","; } cout << b[j-1] << endl;//输出时最后一个单词后面没有逗号 } 10 1.7---25 输出第 1 个最长的单词和第 1 个最短单词。 描述 输入 1 行句子(不多于 200 个单词,每个单词长度不超过 100),只包含字母、空格和逗号。 单词由至少一个连续的字母构成,空格和逗号都是单词间的间隔。 试输出第 1 个最长的单词和第 1 个最短单词。 输入
一行句子。 输出 两行输出: 第1行,第一个最长的单词。 第2行,第一个最短的单词。 样例输入 I am studying Programming language C in Peking University 样例输出 Programming #include<bits/stdc+.h>/C++的万能头文件 using namespace std; int main() { char s1[25000]; int count=0;/记录单词长度 int lenl;:∥记录最长的单词长度 int len2;/记录最短的单词长度 itxl;/记录最长单词的起始位置 intx2;/记录最短单词的起始位置 len1 =0; 1en2=101/∥单词最长为101个 x1=0; x2=0; gets(s1); int i; int j=0; intn=strlen(sl)月 sI[='",∥在字符串最后添加空格,方便判定最后一个单词,统一处理 for(i=0;i<=n;i++) ifs1[)='&&sl[=,) count ++ } else if(count>0)/防止连续的空格,所以加一个count>:0的条件
一行句子。 输出 两行输出: 第 1 行,第一个最长的单词。 第 2 行,第一个最短的单词。 样例输入 I am studying Programming language C in Peking University 样例输出 Programming I #include <bits/stdc++.h> //C++的万能头文件 using namespace std; int main() { char s1[25000]; int count = 0 ; //记录单词长度 int len1; //记录最长的单词长度 int len2;//记录最短的单词长度 int x1;//记录最长单词的起始位置 int x2;//记录最短单词的起始位置 len1 = 0; len2 = 101;//单词最长为 101 个 x1= 0; x2 = 0; gets(s1); int i; int j = 0; int n = strlen(s1); s1[n] = ' '; //在字符串最后添加空格,方便判定最后一个单词,统一处理 for(i = 0 ; i <= n ; i ++) { if(s1[i] != ' ' && s1[i] != ',' ) { count ++; } else if( count > 0 ) //防止连续的空格,所以加一个 count>0 的条件
if(lenl count) { lenl=count:∥更新lenl x1=i-lenl:/记录最长单词的起始位置 } if(len2 count) len2=count;/更新len2 x2=ilen2,/记录最短单词的起始位置 count=0;/∥下一个单词,重新计数 /输出最长单词 for(i=xl;i<=x1 lenl-1;i++) { cout <sl[i]; } cout <<endl; /输出最短单词 for(i=x2:i<=x2 len2-1:i++) cout<<sl[i]; } 111.7-06判断是否是合适的标识符 描述 给定一个不包含空白符的字符串,请判断是否是C语言合法的标识符号(注:题目保证这 些字符串一定不是C语言的保留字)。 C语言标识符要求: 1.非保留字: 2.只包含字母、数字及下划线(“”)。 3.不以数字开头。 输入
{ if( len1 < count) { len1 = count;//更新 len1 x1 = i-len1; //记录最长单词的起始位置 } if( len2 > count) { len2 = count;//更新 len2 x2 = i-len2; //记录最短单词的起始位置 } count = 0; //下一个单词,重新计数 } } //输出最长单词 for(i = x1; i <= x1 + len1-1; i ++) { cout << s1[i]; } cout <<endl; //输出最短单词 for(i = x2; i <= x2 + len2-1; i ++) { cout << s1[i]; } } 11 1.7--06 判断是否是合适的标识符 描述 给定一个不包含空白符的字符串,请判断是否是 C 语言合法的标识符号(注:题目保证这 些字符串一定不是 C 语言的保留字)。 C 语言标识符要求: 1. 非保留字; 2. 只包含字母、数字及下划线(“_”)。 3. 不以数字开头。 输入