您当前的位置: 首页 > 学无止境 > 心得笔记 网站首页心得笔记
045第八章 指针05(新版) 指针与字符串
发布时间:2021-05-03 18:59:20编辑:雪饮阅读()
利用指针定义字符串
在c语言中可以通过字符数组的形式定义一个字符串,那么其实还有另外一个方法定义字符串,这个方法是利用指针。
如:
#include <stdio.h>
void main()
{
char *string="arrangements";
printf("%s\n",string);
}
D:\cproject>gcc main.c -o m
D:\cproject>m.exe
arrangements
利用指针遍历拷贝字符串
#include <stdio.h>
void main()
{
char a[] = "www.baidu.com", b[40];
int i;
//因为有时候不知道原始字符串的长度,但是字符串就是字符数组以“\0”做为最后一个字符元素结尾的,则可以利用此做为循环的结束条件
for(i=0; *(a+i) != '\0'; i++)
{
*(b+i) = *(a+i);
}
//循环结束后补上结束字符即可
*(b+i) = '\0';
printf("String a is: %s\n", a);
printf("String b is: ");
for(i=0; b[i] != '\0'; i++)
{
printf("%c", b[i]);
}
printf("\n\n");
}
D:\cproject>gcc main.c -o m
D:\cproject>m.exe
String a is: www.baidu.com
String b is: www.baidu.com
那么下面这个和上面这个同理:
#include <stdio.h>
void main()
{
char a[] = "www.baidu.com", b[40], *p1, *p2;
int i;
p1 = a;
p2 = b;
for( ; *p1 != '\0'; p1++, p2++)
{
*p2 = *p1;
}
*p2 = '\0';
printf("String a is: %s\n", a);
printf("String b is: ");
for(i=0; b[i] != '\0'; i++)
{
printf("%c", b[i]);
}
printf("\n");
}
D:\cproject>gcc main.c -o m
D:\cproject>m.exe
String a is: www.baidu.com
String b is: www.baidu.com
利用数组下标遍历拷贝字符串
这个就比较传统的比较简单的了
#include <stdio.h>
void copy_string(char from[], char to[])
{
int i = 0;
while( from[i] != '\0' )
{
to[i] = from[i];
i++;
}
to[i] = '\0';
}
void main()
{
char a[] = "I am a teacher.";
char b[] = "You are a student.";
printf("string a = %s \n string b = %s \n", a, b);
printf("copy string a to string b:\n ");
copy_string(a, b);
printf("\n string a = %s \n string b = %s \n", a, b);
}
关键字词:指针,字符串