C语言 怎么把char型附加在字符串的后面?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言 怎么把char型附加在字符串的后面?相关的知识,希望对你有一定的参考价值。

char *str = "awgweg";
char c='c';
*str += c;
这样为什么不行呢?

你这样加当然是不行的,首先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后面了
参考技术A 首先str只是一个指针,指向了一个字符串常量“awgweg",所以你不能再往后添加了,否则会引起内存覆盖异常。另外,*str+=c之后这个计算的只是字符串str的第一个字符a相加c,而不是把c给连接到str的后面。所以要么先申请一段内存给指针str,或者把str初始化成一个字符数组。然后再用数组操作。也可以调用strcat来连接两个字符串,但要小心操作,不要覆盖溢出。 参考技术B 首先"awgweg"是个字符串常量,不可更改。
其次*str表示的是字符串的首字符'a'
参考技术C str是一个指针变量,*str的值为'a',是一个常量。而+=操作符的左值得是变量,所以运行会报错。
可以考虑使用数组:
char str[100] ="awgweg";
char c='c';
int iLen = strlen(str);
str[iLen] = 'c';
str[iLenb + 1] = 0;
之所以使用数组,是因为当指针指向字符串常量后,其内容是不能修改的。这是常量的特性本回答被提问者采纳

java 中怎么把char型转换成无符号数

就是写这样一个方法 public static int noSign(char c)

把char 型的数据转换成无符号数

无符号数就是没有负数,只需要截取字符串就行了,从第一位开始截取到x.length()-1就行了 参考技术A 说清楚些吧 意思真心没懂追问

public static int noSign(char c)

在上面这个方法中 把char c 转换成一个无符号的数 在返回给int 型

追答

return Intger.parseInt(c); 是要这个效果不 这是类型转换 将char转int 前提char必须为int样式的值

例子:

public static int noSign(char c)
int s= Intger.parseInt(c);
if(s<0)
s=0-s;

return s;

本回答被提问者采纳
参考技术B 你是要转成ASCII码么???

以上是关于C语言 怎么把char型附加在字符串的后面?的主要内容,如果未能解决你的问题,请参考以下文章

C语言 把char 型 或者 整数转化成二进制 要怎么转

C语言中怎么把一维数组初始化都为0,

C语言中怎么把Int型转成字符型?

c语言里怎么把float转换为char型?

c语言中怎么把不同类型转化成同一类型?

C语言sprintf怎么使用