您的位置:首页 > 其它

字符串和字符数组的相互转换

2014-04-16 20:43 351 查看
/* 在写代码之前,先弄清字符串和字符数组的区别。 ——其实他们没有任何区别,只是存放在内存中的一样到数,是字符串还是字符数组,完全是由我们去看待的!

那 ‘\0’呢? 这个是我们理解两者一点点区别到关键,在字符串中,默认存储的时候都有个‘\0’,为什么要这样,就是为了告诉内存存放到字符快结束了。

而字符数组其实不需要到,为什么呀,因为我们一看代码就知道有多长咯!

好到,关键到了:<string.h>中很多的函数都是以 '\0' 来完成的,这个是函数的调用标志,那我们在调用函数的时候注意有没有‘\0’,有的话就OK,没有的话像字符数组类似的话,就得手动加上'\0'咯。。OK!

SQ - 2014-04-16

*/

#include<stdio.h>

int main(){

strcpy_1();

return 0;

}

void strcpy_1(){

char *s= "hello,this is a test!";

char src[20]={'a', 'b', 'c', 'd' ,'e' ,'f' ,'g' ,'h'};

char dest_1[100]={1};

char dest_2[100]={1};

char dest_3[100]={1};

int i=0;

printf("%s\n" ,s); //1 .体现了访问字符串和字符数组没什么两样!

while(s[i] != '\0')

printf("%c",s[i++]);

printf("\n");

strcpy(dest_1 ,s); //2. char *strcpy(char *dest, const char *src);

int j=0; // 其实dest也可以是字符数组

while(dest_1[j] != '\0')

printf("%c",dest_1[j++]);

printf("\n");

int k=0;

strcpy(dest_2,src); //3. 其实src也可以是数组. strcpy会自动的在拷贝之后加'\0'

while(dest_2[k] != '\0')

printf("%c",dest_2[k++]);

printf("\n");

int n=0;

while(s
!= '\0') { //4. 自己实现的将字符串转换成字符数组 (基于的条件就是可以用取字符数组的格式取得字符串! s
)!

dest_3
=s
;

n ++;

}

dest_3[n+1] = '\0';

n=0;

while(dest_3
!= '\0')

printf("%c",dest_3[n++]);

printf("\n");

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: