C语言中对字符和字符串的处理很是频繁,但是C语言本身是没有字符串类型的。字符串通常放在常量字符串中或者字符数组中。字符串常量适用于那些对它不做修改的字符串函数。
size_t strlen( const char* str );
#include
#include
int main()
{
char str[] = "abcdef";
printf("%d", strlen(str));
//运行结果为6
return 0;
}
char* strcpy(char* destination, const char* source);
#include
#include
int main()
{
char str1[] = "abcdef";
char str2[10] = { 0 };
printf("%s", strcpy(str2, str1));
//运行结果为abcdef
return 0;
}
int strcmp( const char* str1, const char* str2 );
#include
#include
int main()
{
char str1[] = "abcdef";
char str2[] = "abcq";
printf("%d", strcmp(str1, str2));
//运行结果为小于0的数字,表示str1小于str2
return 0;
}
char* strcat( char* destination, const char* source );
#include
#include
int main()
{
char str1[10] = "abcd";
char str2[] = "efg";
printf("%s", strcat(str1, str2));
//运行结果为abcdefg
return 0;
}
char* strstr( const char* str1, const char* str2);
#include
#include
int main()
{
char str1[] = "abbbcdef";
char str2[] = "bbcd";
printf("%s", strstr(str1, str2));
//运行结果为bbcdef
return 0;
}
char * strtok ( char * str, const char * sep );
#include
#include
int main()
{
char str1[] = "www.csdn.net";
char buf[20] = { 0 };
strcpy(buf, str1);//将str1拷贝到buf临时使用
char sep[] = ".";
int i = 0;
for (i = strtok(buf, sep); i != NULL; i = strtok(NULL, sep))
{
printf("%s ", i);//运行结果为www csdn net
}
return 0;
}
代码如下(示例):
int my_strlen(const char* p)
{
assert(p != NULL);//断言,为空指针就会报错
int count = 0;
while (*p++ != 0)
{
count++;
}
return count;
}
代码如下(示例):
char* my_strcpy(char* dest, const char* src)
{
assert(dest && src);//断言dest和src有没有空指针,有程序就会报错
char* ret = dest;
while (*dest++ = *src++)
{
;
}
return ret;
}
int my_strcmp(char* s1, char* s2)
{
assert(s1 && s2);
while (*s1 && *s2 && *s1 == *s2)
{
s1++;
s2++;
}
if (*s1 && *s2)
{
return *s1 - *s2;
}
else
{
return 0;
}
}
char* my_strcat(char* dest, char* src)
{
assert(dest && src);
int ret = dest;
while (*dest)
{
dest++;
}
while (*dest++ = *src++)
{
;
}
return ret;
}
char* my_strstr(const char* dest, const char* src)
{
assert(dest && src);
const char* s1 = dest;
const char* s2 = src;
const char* cul = dest;
while (*cul)
{
s1 = cul;
s2 = src;
while (*s1 && *s2 && *s1 == *s2)
{
s1++;
s2++;
}
if (*s2 == '\0')
{
return cul;
}
cul++;
}
}
以上就是今天要讲的内容,本文仅仅简单介绍了常用的字符串操作函数的使用和处理字符和字符串的库函数的使用和注意事项,以及模拟实现代码。