c++中list的指针问题?
答案:2 悬赏:30 手机版
解决时间 2021-02-11 17:22
- 提问者网友:几叶到寒
- 2021-02-10 18:03
我怎么输出了一窜数字啊?
#include
#include
using namespace std;
int main()
{
list coll;
for(char i = 'a';i<='z';++i)
coll.push_back(i);
list::iterator pos;
for(pos = coll.begin();pos!=coll.end();++pos)
{cout< }
cin.get();
return 1;
}
最佳答案
- 五星知识达人网友:迷人又混蛋
- 2021-02-10 18:41
#include
#include
using namespace std;
int main()
{
list coll;
for(char i = 'a';i<='z';++i)
coll.push_back(i);
list::iterator pos;
for(pos = coll.begin();pos!=coll.end();++pos)
{cout<<(char)toupper(*pos); //toupper的返回值是int类型,直接输出就成数字了
}
cin.get();
return 1;
}
全部回答
- 1楼网友:迷人又混蛋
- 2021-02-10 19:45
这个是典型的c风格和c++风格混合在一起的问题,建议直接用c++的string吧(预处理命令里不也包含了string了么)
说下你的问题
buff=new char[strlen(me.buff)+1];
为buff字符串(c语言风格的串,你可以理解为一串连续存储的char,其中buff指针指向这队char的第一个的地址)
strlen是c库中的函数,这里是用来计算串的长度,传入的参数是char*,也就是返回上面提到的那个串的长度(里面到底有多少个char),最后+1是为了给字符串的'\\0'留出位置。c语言风格的字符串是用'\\0'表示结束的,strlen返回的长度不包括这个'\\0'(具体请百度或google c和c++字符串区别)
strcpy函数也是c标准库里的函数,传入参数是两个指针,把后者指针指向的内容拷贝到前者指向的空间。
最后建议多了解些指针相关的知识
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯