C语言 怎么把char型附加在字符串的后面?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言 怎么把char型附加在字符串的后面?相关的知识,希望对你有一定的参考价值。
char *str = "awgweg";
char c='c';
*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 型的数据转换成无符号数
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;
以上是关于C语言 怎么把char型附加在字符串的后面?的主要内容,如果未能解决你的问题,请参考以下文章