C语言,字符串指针指向字符串的字符串,那个字符串存储在哪个位置?

求助C语言,用指针将两个字符串连在一起哪里出错了 [问题点数:20分结帖人u]


//的内存空间给到 char数组 s的,
while(*ps!='\0') //这个时候 相当于已经访问到 s结尾处的字节'\0'了后面已经没有内存空間
*(ps++)=*(pa++); //这个时候继续做ps++操作并给它赋值,肯定越界访问内存出错

//当你后面继续做本身字符串结尾处,然后再拷贝别的字符串就不会出问题啦
//当然字符串的总长度不要超过s定义的长度,也就是这里的16
字符串是不限大小的这个没关系吧

再下面的代码你自己应该清楚了吧,长度為7的数组会不会越界

这是一个函数,在调用时s的数组长度要大于s的字符串长度+ t的字符串长度 + 1 才可以否则就会出现越界

匿名用户不能发表回复!
}
版权声明:本文为博主原创文章遵循 版权协议,转载请附上原文出处链接和本声明

一、首先了解一下字符串的表示方式,即c语言中怎样定义字符串

测试代码如下: 

 
 /*结果显示:string.c:6:2: 错误:字符数组初始值设定项中有多余元素*/
 
 

 二、把指针表示的字符串内容放入数组中,用数组来表示

 char buf[5] = {0}; //最好设置的数组长度比较夶大于或者等于字符串长度
 

编译并执行后的结果显示:

 

可以查看ASCII码,可知
字符'0'的十进制是48,
空格SPACE的十进制是32,
字符'1'的十进制是49
字符'2'的┿进制是50,
字符'\0'的十进制是0
}

我要回帖

更多关于 指针指向字符串 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信