私のC/C++の道-009課(文字列の操作&Cシステムのいくつかの文字列の操作関数を書き換えます)
1时间以上かかって、やっとこれらを书き终わって、贴ってみんなと分かち合って、すべて文字列の操作についてで、分からないで伝言を残して、注釈はすべてとてもはっきりしています
#include<stdio.h>
/**
& C
strcpy strcmp strcat
*/
void strReplace(char *,char *,int ); //
char *strCopy(char *,const char *); //
int strCompare(char *,char *); //
char *strConcat(char *,char *); //
void strConvert(char *); //
int strLength(char *); //
//
void strOperate()
{
char source[]="China";
char rep[]="ese";
//
puts("---------replace------------");
strReplace(source,rep,4);
puts(source);
//
puts("---------strcpy------------");
char distStr[10];
strCopy(distStr,"abcdefg");
puts(distStr);
//
puts("---------strcmp------------");
printf("%d
",strCompare("ABCD","ABC"));
//
puts("---------strlength------------");
printf("%d
",strLength("ABCDe"));
//
puts("---------strconcat------------");
char sc[30] = "Chinese";
strConcat(sc," FUCK Japanese");
puts(sc);
//
puts("---------strconvert------------");
char s[] = "I love my homeland";
strConvert(s);
puts(s);
}
//
void strReplace(char *soucrStr,char *replaceStr,int pos)
{
while(pos>0&&*soucrStr!='\0')//pos>1 ,
{
soucrStr++;//
pos--;
}
while(*soucrStr!='\0'&&*replaceStr!='\0')
{
*soucrStr = *replaceStr;//
soucrStr++;
replaceStr++;
}
}
// ( , , )
char *strCopy(char *distStr,const char *sourceStr)
{
char *address = distStr;
while((*distStr++=*sourceStr++)!='\0');//
//*distStr++ ++, , ,
return address;
}
//
int strCompare(char *str1,char *str2)
{
while(*str1&&*str2&&(*str1==*str2))
{
str1++;
str2++;
}
return *str1-*str2;
}
//
char *strConcat(char *distStr,char *sourceStr)
{
char *address = distStr;
while(*distStr)// , while(*distStr++),
{
distStr++;
}
while((*distStr++=*sourceStr++)!='\0');
return address;
}
//
void strConvert(char *str)
{
int len = strLength(str);
int mid = len/2;
char tmp;
for(int i=0;i<mid;i++)
{
tmp = str[i];
str[i] = str[len-i-1];
str[len-i-1] = tmp;
}
}
//
int strLength(char *str)
{
int len = 0;
while(*str++)
len++;
return len;
}