- UID
- 32468
注册时间2007-6-1
阅读权限10
最后登录1970-1-1
周游历练
该用户从未签到
|
引自第八阁论坛:http://bbs.chinadbg.cn/forum-7-1.html
飞翔技术论坛:http://www.powk.net/bbs/forumdisplay.php?fid=4&page=1
输入二组文字,输出每组的长度,其中大写字母,小写字母,空格,数字及其它字符各有多少?比较大小,关连接两组到一组输出。
要求用通用指针自定义字串函数。
天圆地方的delphi代码:
- //自定函数
- Function StringContent(TmpString:String):string;
- var
- i,LenNum,LNum,BNum,SNum,NNum,ONum:integer;
- Tmp:char;
- begin
- LNum:=0;
- BNum:=0;
- SNum:=0;
- NNum:=0;
- ONum:=0;
- LenNum:=Length(TmpString);
- for i:=1 to LenNum do
- begin
- Tmp:=TmpString[i];
- case Tmp of
- 'a'..'z':LNum:=LNum+1;
- 'A'..'Z':BNum:=BNum+1;
- '0'..'9':NNum:=NNum+1;
- ' ':SNum:=SNum+1;
- else ONum:=ONum+1;
- end;
- end;
- Result:=Format('字符长度为:%s;小写字母有:%s个;大写字母有:%s;空格有:%s个;其它字符有%s个。',[IntToStr(LenNum),IntToStr(LNum),IntToStr(BNum),IntToStr(SNum),IntToStr(ONum)]);
- end;
- //函数调用
- procedure TForm1.Button1Click(Sender: TObject);
- Var
- TmpString1,TmpString2:string;
- begin
- TmpString1:='123123as dfa#s$d%f';
- TmpString2:='a;sdfaf pqweurq]][';
- ShowMessage('字符串1:'+StringContent(TmpString1));
- ShowMessage('字符串2:'+StringContent(TmpString2));
- ShowMessage(TmpString1+TmpString2);
- end;
复制代码
freesoft的C++代码:
C++代码:
- #include <iOStream>
- //#include <string>
- using namespace std;
- int strle(const char *string)
- {//字串长度
- int len=0;
- while(*string)
- {
- len++;
- *string++;
- }
- return len;
- }
- void strca(const char *str1,const char *str2)
- {//字串连接
- int i1=0,i2=0;
- char string[255];
- while(str1[i1]!='\0')
- {
- string[i1]=str1[i1];
- i1++;
- }
- while(str2[i2]!='\0')
- {
- string[i1]=str2[i2];
- i1++;
- i2++;
- }
- string[i1]='\0';
- cout<<"两个字符串合并为:\n"<<string<<endl;
- }
- void strcm(const char *str1,const char *str2)
- {//比较字串大小
- while((*str1==*str2)&&(*str1))
- {
- *str1++;
- *str2++;
- }
- if ((*str1==*str2)&&(!*str1))
- cout<<"两个字符串一样"<<"\n";
- else if((*str1)&&(!*str2))
- cout<<"第一个字符串大于第二个字符串"<<"\n";
- else if((*str2)&&(!*str1))
- cout<<"第二个字符串大于第一个字符串"<<"\n";
- else if((*str1)>(*str2))
- cout<<"第一个字符串大于第二个字符串"<<"\n";
- else cout<<"第二个字符串大于第一个字符串"<<"\n";
- }
- void showall(const char *string)
- {
- int num1=0,num2=0,num3=0;
- while(*string)
- {
- if(*string>='a'&&*string<='z')num1++;
- if(*string>='A'&&*string<='Z')num2++;
- if(*string>='0'&&*string<='9')num3++;
- *string++;
- }
- cout<<"你输入的字符串中小写字母"<<num1<<"\n"
- <<"你输入的字符串中大写字母"<<num2<<"\n"
- <<"你输入的字符串中数字"<<num3<<"\n";
-
- }
- void main()
- {
- char str1[255],str2[255];
- cout<<"请输入两组字符串用回车分开"<<endl;
- cin>>str1>>str2;
- cout<<"你输入的第一个字符串是:"<<str1<<" "<<"长度是:"<<strle(str1)<<"\n";
- showall(str1);
- cout<<"你输入的第二个字符串是:"<<str2<<" "<<"长度是:"<<strle(str2)<<"\n";
- showall(str2);
- strcm(str1,str2);
- strca(str1,str2);
- }
复制代码 |
|