关于C语言的一道字符串题

Python018

关于C语言的一道字符串题,第1张

#include<iostream>

#include<string.h>

using namespace stdchar *szReplace(char *pszSrc,char *pszSub)

{

int iLen

iLen=strlen(pszSrc)+strlen(pszSub)//先求2个字符串长度

char *pszNew=new char[iLen+1]//开辟一个新内存,为2个字符串的长度之和,注意+1为'\0'

char *pszTemp=pszNew//为了返回pszNew但不改变指针指向,定义一个临时指针

if(strlen(pszSub)>strlen(pszSrc))

{

while(*pszSrc!='\0')

{

*pszTemp=*pszSrc

pszTemp++

pszSrc++

*pszTemp=*pszSub

pszTemp++

pszSub++

}

if('\0'==*pszSrc&&*pszSub!='\0')

{

*pszTemp=*pszSub

pszTemp++

pszSub++

}

*pszTemp='\0'

}

else if(strlen(pszSub)<strlen(pszSrc))

{

while(*pszSub!='\0')

{

*pszTemp=*pszSrc

pszTemp++

pszSrc++

*pszTemp=*pszSub

pszTemp++

pszSub++

}

if('\0'==*pszSub&&*pszSrc!='\0')

{

*pszTemp=*pszSrc

pszTemp++

pszSrc++

}

*pszTemp='\0'

}

return pszNew

}

int main()

{

char str1[]="123456789"

char str2[]="abcdefghijk"

char *pszTest1=szReplace(str1,str2)

cout<<pszTest1<<endl

delete pszTest1

pszTest1=NULL

return 0

}

#include "stdio.h"

int main(int argc,char *argv[]){

char str[102],l[26],i

printf("Please enter a string...\n")

fgets(str,101,stdin)

for(i=0i<26l[i++]=0)

for(i=0str[i]i++)

if(str[i]>='a' && str[i]<='z' || str[i]>='A' && str[i]<='Z')

l[(str[i]|32)-97]++

printf("The results are as follows:\n")

for(i=0i<26i++)

if(l[i])

printf("%c:  %d\n",i+'A',l[i])

return 0

}

运行样例:

这个题输出

其实,这样理解

第一句 定义两个字符串,每个字符串长度 10

第二句 输出 直接指向 第二串

因此 结果是 第二个字符串