#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
第二句 输出 直接指向 第二串
因此 结果是 第二个字符串