#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
}