资源描述:
《华为最新笔试题——编程题及答案_1》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、问题:输入一个字符串,用指针求出字符串的长度。答案:#includeintmain(){charstr[20],*p;intlength=0;printf(“Pleaseinputastring:”);gets(str);p=str;while(*p++){length++;}printf(“Thelengthofstringis%d”,length);return0;}问题:使用C语言实现字符串中子字符串的替换描述:编写一个字符串替换函数,如函数名为StrReplace(char*
2、strSrc,char*strFind,char*strReplace),strSrc为原字符串,strFind是待替换的字符串,strReplace为替换字符串。举个直观的例子吧,如:“ABCDEFGHIJKLMNOPQRSTUVWXYZ”这个字符串,把其中的“RST”替换为“ggg”这个字符串,结果就变成了:ABCDEFGHIJKLMNOPQgggUVWXYZ答案一:#include#includevoidStrReplace(char*strSrc,char*s
3、trFind,char*strReplace);#defineM100;voidmain(){chars[]="ABCDEFGHIJKLMNOPQRSTUVWXYZ";chars1[]="RST";chars2[]="ggg";StrReplace(s,s1,s2);printf("%s",s);}voidStrReplace(char*strSrc,char*strFind,char*strReplace){inti=0;intj;intn=strlen(strSrc);intk=strlen(st
4、rFind);for(i=0;i#defineMAX100StrReplace(char*s,char*s1,char*s2){char*p;for(;*s;s++){for(p=s1;*p&&*p!=*s
5、;p++);if(*p)*s=*(p-s1+s2);}}intmain(){chars[MAX];//s是原字符串chars1[MAX],s2[MAX];//s1是要替换的//s2是替换字符串puts("Pleaseinputthestringfors:");scanf("%s",s);puts("Pleaseinputthestringfors1:");scanf("%s",s1);puts("Pleaseinputthestringfors2:");scanf("%s",s2);StrReplace(
6、s,s1,s2);puts("Thestringofsafterdisplaceis:");printf("%s",s);return0;}答案三:#include#include#include#defineM100voidStrReplace(char*strSrc,char*strFind,char*strReplace);intmain(){chars[]="ABCDEFGHIJKLMNOPQRSTUVWXYZ";chars1[]="R
7、ST";chars2[]="gggg";StrReplace(s,s1,s2);printf("%s",s);return0;}voidStrReplace(char*strSrc,char*strFind,char*strReplace){while(*strSrc!=' '){if(*strSrc==*strFind){if(strncmp(strSrc,strFind,strlen(strFind))==0){inti=strlen(strFind);intj=strlen(strReplac
8、e);printf("i=%d,j=%d",i,j);char*q=strSrc+i;printf("*q=%s",q);while((*strSrc++=*strReplace++)!=' ');printf("strSrc-1=%s",strSrc-1);printf("*q=%s",q);while((*strSrc++=*q++)!=' ');}else{strSrc++;}}else{strSrc