自定义方法实现strcpy,strlen, strcat, strcmp函数,了解及实现原理
位置计算字符串长度
//strlen()函数,当遇到'\0'时,计算结束,'\0'不计入长度之内
//字符串的拷贝
//strcpy(字符串1,字符串2);
//把字符串2中从一个元素到一个'\0'(包括'\0')的字符串,拷贝到字符串1(CNG字符串1的第一个元素开始)
//注意:如果做拷贝,字符串1应该足够大,否则会越界
//字符串的拼接
//strcat(字符串1,字符串2)
//把字符串2从第一个元素到第一个'\0'(包括'\0')的字符串,拼接到字符串1的第一个'\0'(从'\0'开始)后面
//字符串的比较
//strcmp(字符串1, 字符串2)
//0:表示两个字符串相等
//用字符串1的每一个元素和字符串2对应的元素做比较(字符串1元素的ASICC值 - 对应字符串2元素的ASICC值),当比较的结果不为0时,结束,或者当两个字符串对应的元素都
//自定义实现计算字符串的长度
unsigned long myStrlen(char string[])
{
unsigned long length = 0;
while (string[length] != '\0') {
length++;
}
return length;
}
//自定义实现字符串的拷贝
void myStrcpy(char string1[], char string2[])
{
int i = 0;
while (string2[i] != '\0') {
string1[i] = string2[i];
i++;
}
string1[i] = '\0';
}
//自定义函数实现字符串的凭拼接
void myStrcat(char string1[], char string2[])
{
//找string1的'\0'位置
int i = 0;
while (string1[i] != '\0') {
i++;
}
//把string2加到string1后面
int j = 0;
while (string2[j] != '\0') {
string1[i++] = string2[j++];
}
//不要忘记在最后添加\0
string1[i] = '\0';
}
//自定义函数实现字符串的比较
int myStrcmp(char string1[], char string2[])
{
int i = 0;
while (string1[i] == string2[i] && string1[i] != '\0') {
i++;
}
return string1[i] - string2[i];
}
posted on 2015-03-01 20:26 taiyang2014 阅读(7565) 评论(0) 编辑 收藏 举报