15号貌似要华为机试,搜索了一下华为历年来的机试题,发现和百炼上练习的还挺像,要好好突击一下,顺便将字符串操作的相关面试题整理一下,再练练手
我发现编程得每天都看着,要是隔几天不变,手就变生了。。嗯,加油!!
1,2012年9月的华为一个机试题
将字符串中的每一个字符,变成他的下一个字符。大小写不变,
如果是z就改成a 比如,输入为abcf,输出应为bcdg。
函数原型给定了:void change_letter(char *pInStr, char *pOutStr)
void change_letter(char *pInStr, char *pOutStr)
{
if(pInStr==NULL||pOutStr==NULL)
return;
while(*pInStr){//直接用指针操作,省去i
if(*pInStr=='z'||*pInStr=='Z')
*pOutStr=*pInStr-25;
else
*pOutStr=*pInStr+1;
pInStr++;
pOutStr++;
}
*pOutStr='\0';
}
int main()
{
char *pInStr="abcdefZ";
char *pOutStr=(char *)malloc(strlen(pInStr));
*pOutStr='\0';
printf("%s\n",pInStr);
change_letter(pInStr,pOutStr);
printf("%s\n",pOutStr);
return 0;
}