这个字符串的相关函数真的很有用,全部记住对后面的项目有大大的帮助,建议多多的学习,争取全部都记住!!!
我这里写了一个拷贝的实现,其他的实现可以去想想!!!
#include <stdio.h>
#include <string.h>
// 字符串追加
int main1()
{
char str1[100] = "hello ";
char str2[] = "world";
// 把字符出str2的内容 放到字符串str1的末尾
// 注意:str1空间必须足够大,否则就会越界
strcat(str1, str2);
// 只将str2的前两个字符放到str1的后面
strncat(str1, str2, 2);
puts(str1);
return 0;
}
// 字符串的判断
int main2()
{
//char str1[] = "hello ";
//char str1[] = "world";
char str1[] = "workasjdksahdksahd";
char str2[] = "world";
// 用于比较两个字符串的大小
// 如果两个字符串相等,这个值为0
if(strcmp(str1, str2) == 0)
{
printf ("str1 == str2\n");
}
else
{
printf ("str1 != str2\n");
}
if(strncmp(str1, str2, 3) == 0)
{
printf ("str1 == str2\n");
}
else
{
printf ("str1 != str2\n");
}
return 0;
}
// 字符串的拷贝
int main3()
{
char str1[100] = "hello ";
char str2[] = "wor";
// str1 = str2 字符数组不能直接赋值
// 用str2的值替换str1
// 注意:str1要足够大,不然会越界
//strcpy(str1, str2);
// 用str2的前两个字符替换str1
strncpy(str1, str2, 2);
puts(str1);
return 0;
}
int main4()
{
char str[100];
// str = "hello"; 不可以对字符数组直接赋值
strcpy(str, "hello");
puts(str);
return 0;
}
// 字符串拷贝
int main()
{
char str1[100] = "hello";
char str2[] = "worldkgffijhgkjhgkjh";
// 拷贝实现
char *p1 = str1;
char *p2 = str2;
while (*p2)
{
*(p1++) = *(p2++);
}
*p1 = '\0';
puts(str1);
return 0;
}