《每日一练合集》
3.1 求字符串的子串个数
3.2 判断程序输出
3.3 strlen 实现
int strlen(const char *str)
{
assert(str != NULL);
int count = 0;
while (*str++ != NULL) {
++count;
}
return count;
}
用来判断字符串的长度,以结束符NULL为标志。
3.4 strcmp 实现
int strcmp(const char *str1, const char *str2)
{
assert(str1 != NULL && str2 != NULL);
int ret = 0;
//通过字符的ASCII相减之后的值来判断,同时判断str1是否结束
while (!(ret = *(unsigned char *)str1 - *(unsigned char *)str2) &&
*str1) {
++str1;
++str2;
}
if (ret < 0) ret = -1;
else if (ret > 0) ret = 1;
return ret; //相等返回0
}
strcmp用来比较两个字符串的长度:
若str1 > str2,返回1
若str1 = str2,返回0
若str1 < str2,返回-1
3.5 strcat 实现
char *strcat(char *dest, const char *src)
{
assert(dest != NULL && src != NULL);
char *p = dest;
while (*p++ != NULL);
p = src;
while ((*p++ = *src++) != NULL);
return dest;
}
strcat用来将一个字符串连接在另一个字符串后面,覆盖掉前一个字符串的‘\0’,并在最后添加‘\0’。