char*的字符串后面想要添加字符,怎么办

char*的字符串后面想要添加字符,怎么办,第1张

首先str只是一个指针,指向了一个字符常量“awgweg",所以你不能再往后添加了,否则会引起内存覆盖异常。另外,*str+=c之后这个计算的只是字符串str的第一个字符a相加c,而不是把c给连接到str的后面。所以要么先申请一段内存给指针str

你这样加当然是不行的,首先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后面了

在 C 语言中,可以使用 char * 指针变量来处理字符串。

你可以直接给指针赋值为字符串常量。例如:

char *str = "Hello World!"

这样做可以将字符串常量 "Hello World!" 赋值给指针变量 str。但是这样做并不能修改字符串常量的内容。

你也可以使用 gets 函数从标准输入(通常是键盘)读入字符串,并将其赋值给指针变量。例如:

char str[100]

gets(str)

这样做会将从键盘输入的字符串赋值给指针变量 str。但是 gets 函数已经被废弃,不建议使用。建议使用 fgets 函数来读入字符串。


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

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

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

发表评论

登录后才能评论

评论列表(0条)

    保存