nbcj.net
当前位置:首页 >> C++字符数组问题 >>

C++字符数组问题

运行下面代码你就明白了 int strlth(char *s) { int i; for(i=0;*(s+i)!='\0';++i); return i; } void main() { char a[5]={'a','b','c','d','e'}; cout

所有数组的数组名就是数组的首地址 char a[10];a就是数组名,也是数组首地址,也就是第一个字符的地址,就是a[0]的地址,所以a==&a[0] 你可以在scanf的参数里用&a[0],是一样的效果。 关于scanf这个函数,它会根据你的参数列表进行读取输入缓冲区...

memset(str, 0, 20); strcat(str, s.data()); 或者 strcpy(str, s.data()); 或者 int i = 0; for(i = 0; i < s.size(); i++) { str[i] = s.at(i); } str[i] = 0;

#include #include int main() { int i; char *str[10]; for (i=0; i

cout这个对象的运算符被重载了好多个类型的版本,当它遇到char*的时候它就会认为这是一个字符串(即字符数组,并且最后有一个‘\0'做为结尾)来显示,而它遇到int的时候就会把这个int转换成字符串来进行输出,遇到int*的话就是把地址的值转换成字...

你这个代码的结果是未定的,不可预料的,因为你定义了数组却没有初始化,编译器并不会自动为新的变量初始化为0,而strlen是一直算到一个'\0'为止的长度,而你的数组里面根本没有元素是等于0的,因此strlen中已经出现了数组越界了,他一直读到第3...

定义char a[5],则说明,a是个字符数组,在内存中占五个字节空间 如果用a来存储字符串,则最多只能有4个有效字符,必须给\0留个空间。 计算a的长度与a的大小是不同的概念 a按字符串来算长度是从a这个地址开始,计数到\0字符,这之间的字符个数是...

错在以下两个地方:(1)数组传递本就是指针传递,不能使用引用方式,系统会报错arrays of references are illegal(对数组引用是错误的),去掉&符号编译是没有问题的。(2)你的strcpy(temp,s);正好写反了,应该是strcpy(s,temp);这才是把temp...

//给你改了一个。你的原代码最大的问题就是输入一个字串,处理一个,并输出一个//明显不符合题意的。//下次类似问题,如果可能请直接贴上代码。方便调试修改。也可以节省时间。//下次类似问题,如果可能请直接贴上代码。方便调试修改。也可以节...

当char *a="xxxxxxxx"; 这个就是你数组中的一个元素吧?当使用cout

网站首页 | 网站地图
All rights reserved Powered by www.nbcj.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com