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

Python011

关于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

int comstring(char ch1[],char ch2[],int *pn)

{for(*pn=0ch1[*pn]&&ch1[*pn]==ch2[*pn](*pn)++)

return ch1[*pn]-ch2[*pn]

}

int main()

{ char ch1[200],ch2[200]

int n,dif

gets(ch1)

gets(ch2)

dif=comstring(ch1,ch2,&n)

printf("区别在第%d个字符,相差%d\n",n+1,dif)

return 0

}

#include <stdio.h>

#include <string.h>

int main()

{

char a[255] = ""

char b[255] = ""

printf("请输入字符串a:")

scanf("%s", a)

printf("请输入字符串b:")

scanf("%s", b)

char* p = strstr(a, b)

if (p != NULL)

printf("%s第一次出现在%s的位置为:%d", b, a, p - a)

else

printf("%s不包含%s的子串", a, b)

return 0

}