void Mystrcpy1(char *des,const char *src)
{
int i=0;
for(i=0;src[i]!='\0';i++)
{
des[i]=src[i];
}
des[i]='\0';
}
void Mystrcpy2(char *des,const char *src)
{
int i=0;
for(i=0;*src!='\0';i++)
{
*des++=*src++;
}
*des='\0';
}
void Mystrcpy3(char *des,const char *src)
{
while(*src!=0)
{
*des=*src;
des++;
src++;
}
}
void Mystrcpy4(char *des,const char *src)
{
while(*src!=0)
{
*des++=*src++;
}
*des='\0';
}
void Mystrcpy5(char *des,const char *src)
{
while(*(des++)=*(src++));
}
char Mystrcpy(char *des,const char *src)
{
char *p=des;
while(*(des++)=*(src++));
return *p;
}
int Mystrlen(const char *str)
{
assert(str!=NULL);
int count=0;
while(*str!='\0')
{
count++;
str++;
}
return count;
}
编一个程序,将两个字符串s1和s2比较
void Strcmp(char *arr,char *brr)
{
int different=0;
while(different==0&&*brr!='\0')
{
int i=0;
different=arr[i]-brr[i];
i++;
if(arr[i]>brr[i])
{
printf("arr[i]>brr[i]\n");
}
if(arr[i]>brr[i])
{
printf("arr[i]<brr[i]\n");
}
}
printf("%d\n",different);
}
int Strcmp1(char *arr,char *brr)
{
int different=0;
while(((different=(*arr++)-(*brr++))==0)&&(*brr!='\0'))
{
NULL;
}
return different;
}
编一个程序,将两个字符串连接起来,不要用strcat
char *Strcat(char *arr,const char *brr)
{
char *p=arr;
assert((*arr!=NULL)&&(*brr!=NULL));
while(*p++)
{
NULL;
}
p--;
while(*p++=*brr++)
{
NULL;
}
return arr;
}
void Strcat1(char *arr,char *brr)
{
assert((*arr!=NULL)&&(*brr!=NULL));
int i=0;
int j=0;
while(arr[i]!='\0')
{
i++;
}
while(brr[j]!='\0')
{
arr[i++]=brr[j++];
}
i++;
arr[i]='\0';
}
编写函数Myatoi(),功能和atoi一样
字符换成整型:‘1’-‘0’=1;‘2’-‘0’=2
int Myatoi(char *str)
{
assert(str!=NULL);
int flag=0;//0代表正数1代表负数
if(*str=='+')
{
flag=0;
str++;//从第二个字符开始转化
}
else if(*str=='-')
{
flag=1;
str++;//从第二个字符开始转化
}
int num=0;
while(*str!='\0')
{
num=num*10+(*str-'0');
str++;
}
if(0==flag)
{
return num;
}
else
{
return -num;
}
}
int Sum(char *str)
{
char tmp[100]={0};
strcpy(tmp,str);
char *des=strtok(tmp,",");
int sum=0;
while(des!=NULL)
{
int i;
i=atoi(des);
sum+=i;
des=strtok(NULL,",");
}
return sum;
}
int main()
{
char a[100]="12,23,45,56,84,78,56,54,32,15";
int sum=Sum(a);
printf("sum=%d\n",sum);
return 0;
}
printf("%d",printf("%d",printf(“43”)));
输出结果为1234
用sizeof和strlen输出所得结果
char str1[100]=“abcdef”;//100,6
char str2[]=“abcdef”;//7,6
char *str3=“abcdef”;//4,6
char str4[100]=“abcdef\0xyz”;//100,11
char str5[]=“abcdef\0xyz”;//11,6
char *str6=“abcdef\0xyz”;//4,6
char str7[]=“abcdef\n\0”;//9,7
char *str8=“abcdef\n\0”;//4,7
查找字符串匹配次数
int main()
{
char *p="11abcd231221abcd534abcd5s45rtr4";
int i=0;
char *tmp=NULL;
tmp="abcd";
int count=0;
while(i!=strlen(p))
{
if(*(p+i)!=*tmp)
{
i++;
}
if(*(p+i)==*tmp)
{
i+=strlen("abcd");
count++;
}
}
printf("%d\n",count);
return 0;
}
int main()
{
char *p="11abcd231221abcd534abcd5s45rtr4";
int i=0;
char *tmp=NULL;
while(1)
{
//查找匹配字符串,如果找到,返回匹配字符串的地址,没有找到返回空
tmp=strstr(p,"abcd");
if(tmp==NULL)//没有zhaodao
{
break;//跳出循环
}
else//找到
{
i++;//累加
//重新设置寻找的起点
p=tmp+strlen("abcd");
}
}
return 0;
}