如何向char* 里面追加数据

如何向char* 里面追加数据,第1张

直接向指针里面追加数据是肯定不行的,你连编译都通不过。因为你定义了一个指针变量而指针变量没有指向一个固定的内存空间,如果你直接 *** 作指针是不安全的,因为指针可能指向重要的数据,如果数据破坏后果可能很严重编译器当然不允许这样的情况发生。如果你是想向字符串后面追加数据的话,建议你先将字符串放到一个字符数组里面去,然后可以用指针来 *** 作了。比如:char a[20]="Hello world!"char *pp=afor(p<a+20p++){ *p=...}这是一种方法,还有一种方法就是一楼所说的strcat(a,b),a要是一个足够大的字符数组,因为这个函数将字符串追加之后结果是放在a里面的,如果空间不够那就会丢失数据了。

1、char类型,也就是常说字符类型。char类型和其它类型一样在定义和初始化上可以先声明(定义),再赋值(初始化)。使用char来定义一个字符,通过单引号括起来的单个字符赋值给它。

2、当然你也可以在定义变量的时候就初始化(也就是在声明的时候赋值)。

3、注意字符并不意味着字母,单引号括起来的单个字符。所谓单个字符可以是数字、中文之类的。

4、字符类型可以自动转化为存储空间比它大的int类型。例如下面的例子,c是字符,把它赋值int类型的i1时,却不报错就是因为自动转化。

5、int转化为字类型时(这种是属于存储空间由大向小的转化),则需要强转。

6、加了强制转换这后,它就不报错了。

你这样加当然是不行的,首先char *str 你定义的是一个指针,那么 *str += c;这句就有语病了;一个指针怎么能和一个字符相加呢?

你可以这样编写:

char str[] = "awgweg"

char c = 'c'

str[sizeof(str) - 1] = c//sizeof()这个函数是求出字符数组str的长度,那个这句就是将字符c变成为该数组的最后一个数组元素,也就是将字符c加在该字符串的最后

str[sizeof(str)] = '\0'//由于字符串是以字符‘\0’结尾的,所以该字符串的长度不是6而是7,执行上一句后,该字符串的'\0'变成了字符c,因此需要重新添加'\0'到该字符串的最后最为该字符串的结尾。程序执行了这两句后就实现了将字符c加到该字符串的后面了。

printf("%s\n",str)

这样字符'c'就加在字符串str后面了


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11621807.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-17
下一篇2023-05-17

发表评论

登录后才能评论

评论列表(0条)

    保存