C++中字符串给数组赋值问题,下面的程序,后面输出有乱码,请问如何解决

#include<iostream> #include<string> using namespace std; void main() { char a[10]; string str="hello"; for(int i=0;i<str.size ();i++) a[i]=str[i]; cout<<a<<endl; }

第1个回答  2019-06-06
建议你用memset将a数组初始化为全部的都是'\0',然后再进行后面的操作。。因为size()得出的结果是5,也就是没有将str的最后一个'\0'算到大小内,所以a[5]以及后面的是随机值。。是乱码的。。

C++中字符串给数组赋值问题,下面的程序,后面输出有乱码,请问如何...
建议你用memset将a数组初始化为全部的都是'\\0',然后再进行后面的操作。。因为size()得出的结果是5,也就是没有将str的最后一个'\\0'算到大小内,所以a[5]以及后面的是随机值。。是乱码的。。

写个C++程序,但是字符数组的值输出的是乱码什么情况??
楼主注意字符数组的输入,cin>>字符数组的地址。改过来就没问题了void input(course *cour,int i){ int j; for(j=0;j<i;j++) {cout<<"请输入第"<<j+1<<"科的课程编号、课程名称、课程成绩"<<endl; cin>>cour[j].course_num; cin>>cour[j].course_name; cin>>cour[j]....

在C++中利用循环语句给数组赋值,一次输入一个数,一直全部输完。程序如下...
c++输出格式 一:标准输入函数cin 不知道说它是个函数对还是不对,它是代表标准的输入设备--键盘。他是属于流的,他的用法和流的用法是一样的。也就是:cin>>变量;小小的说明一下,输入多个变量可以写在一行,如:cin>>x>>y>>z;这样写不是不允许,而是不好看,如果是不同的变量类型,那就更是...

C++字符数组赋值问题
你没有给第一位赋值,那么第一位是随机值,你的实例中,a[0]可能是一个负值(-128与-1之间),负值会与第二位结合为一个显示(汉字或一些特殊字符均占两个字符,且第一位是负值),由于此负值与你的'1'(值为49)结合后找不到对应的字符,所以就显示问号 ...

一个C++的字符串数组循环赋值问题
指向数组的长度为 7,有效索引值是 0~6。第四行相当于pstr[6] = '\\0';while语句相当于 while (n>0){ n--;pstr[n] = c; \/\/ fill rest of string } 所以第一次执行循环相当于 pstr[5] = 'a'; 而不是 pstr[6]='a'。注意后置的自减运算符是“先使用,后自减”。

C语言中将字符串赋值给字符数组的问题
s=ss;错误原因是:不能用赋值语句将一个字符数组直接给一个字符数组赋值,即字符串的复制(c语言中,但是在c++的string 类,上面的赋值是正确的)必须用strcpy()函数实现。而char a[ ]=”toyou“;正确的原因是:因为在声明数组变量的时候就是,为其开辟空间,并为其初始化,这样才是符合c语言语法...

C++Char*数组赋值问题求助!!
在循环里面 char inID[21];并没有重新申请新的存储空间,而 sysid[ID]=inID;将字符串数据的成员指向了这个字符串的地址。所以当对inID进入赋值后,所有知道这个地址的数组成员(字符串指针)指向的内容当然就是一样的啦。

C语言与C++ 指针函数调用 乱码 求以下程序结果和详细解释 ,求总结
程序一: 还是输出1234,因为指针p没有改变,函数调用tstfn(p)内对p的改变,不能应该原值,如果要改变指针p的值,必须传入指针的指针tstfn(&p)。程序二:输出4321,函数调用tstfn(p),传入指针p,在函数内对p指针所指向内容进行修改,原值也改变了。程序三:函数中的临时数组a,a当函数返回时,a所...

C++用字符数组给string 数组中某一个string赋值问题
P1[0](ch1): 在没有适当 operator() 的情况下调用类类型的对象或将函数转换到指向函数的类型。P1[0]=ch1;运行正常,没有问题。

c++字符串数组问题?
对数组进行赋值的。定义数组时候初始化使用 = , 但这里不能理解成赋值,因为这是编译器在编译的时候进行处理的。赋值预计在编译时候报错C2106(运算符的左操作数必须为左值)。因此C对于字符串的赋值只能通过两种方式:1,strcpy,这是一个内存拷贝类的函数 2,循环赋值,像一个常规数组的赋值一样:...

相似回答
大家正在搜