最近刚学完数组,把一些学了的字符串处理函数进行自己理解,写出了他们的一些转化程序。有出错的地方请大家指出,相互学习!
1、strcat字符串追加
size_t strcat(char * _Str1, const char * _Str2);
将参数_Str2追加到_Str1后尾
strcat字符串追加的实现:
#include <stdio.h>
#include <string.h>
//strcat字符串追加的实现
int main()
{
char str1[100] = "hello ";
char str2[] = "world";
int len = strlen(str1);
char *p1 = str1;
char *p2 = str2;
p1 = p1 + len;
while (*p2)
{
*(p1++) = *(p2++);
}
*p1 = '\0';
puts(str1);
return 0;
}
2、strncat字符串有限追加
size_t strncat(char * _Str1, const char * _Str2, size_t len);
strncat字符串有限追加的实现:
#include <stdio.h>
#include <string.h>
int main()
{
char str1[100] = "hello ";
char str2[] = "world";
int len = strlen(str1);
char *p1 = str1;
char *p2 = str2;
p1 = p1 + len;
int n;
scanf ("%d", &n);
while (n)
{
*(p1++) = *(p2++);
n--;
}
*p1 = '\0';
puts(str1);
return 0;
}
3、strcmp字符串比较
int strcmp(const char * _Str1,const char * _Str2);
比较两个字符串是否相等,相等返回0,不等返回非0
strcmp字符串比较的实现:
int main()
{
char str1[] = "workasjdksahdksahd";
char str2[] = "world";
char *p1 = str1;
char *p2 = str2;
while (*p1)
{
if(*p1 == *p2)
{
p1 = p1++;
p2 = p2++;
continue;
}
else
{
printf ("str1 != str2\n");
break;
}
printf ("str1 == str2\n");
}
return 0;
}
4、strncmp字符串有限比较的实现:
int main()
{
char str1[] = "workasjdksahdksahd";
char str2[] = "world";
char *p1 = str1;
char *p2 = str2;
int n;
scanf ("%d", &n);
while (n)
{
if(*p1 == *p2)
{
p1 = p1++;
p2 = p2++;
n--;
if(n == 0)
{
printf ("str1 == str2\n");
}
continue;
}
else
{
printf ("str1 != str2\n");
break;
}
}
return 0;
}
5、strcop 字符串的拷贝的实现:
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;
}
6、strcop 字符串的有限拷贝的实现:
int main()
{
char str1[100] = "hello";
char str2[] = "worldkgffijhgkjhgkjh";
// 拷贝实现
char *p1 = str1;
char *p2 = str2;
int n;
scanf("%d", &n);
while (n)
{
*(p1++) = *(p2++);
n--;
}
puts(str1);
return 0;
}