C++ 为什么不能输入one输出1?

[复制链接]
查看11 | 回复1 | 2011-6-30 16:20:59 | 显示全部楼层 |阅读模式
#include
#include
using namespace std;
ostream&operator p)
{

oposl;
        posl.insert(pair("one", 1));
        posl.insert(pair("two", 2));
        posl.insert(pair("three",3));

posl.insert(pair("four",4));
        posl.insert(pair("five", 5));
        posl.insert(pair("six", 6));
        posl.insert(pair("seven",7));
        posl.insert(pair("eight",8));
        posl.insert(pair("nine", 9));
        posl.insert(pair("ten", 10));
        map::iterator i;

char c[5];
        cin>>c;
        i=posl.find(c);
        cout("one", 1));的意思是把"one"常量的字母'o'的位置与1配对插入posl,2.char c[5];表示另外申请一个变量(地址肯定和"one"常量的地址不相同嘛),直接写c表示字符串首字母的地址3.i=posl.find(c);这时候寻找的是posl中char*类型的变量(也是地址)和字符串c的地址相同的某对元素(这当然不存在。根本没有去比较字符串,而是去比较其地址去了)针对这个问题使用class string吧第二个问题,char c[5];就算是你有方法用char*解决问题,这个变...
回复

使用道具 举报

千问 | 2011-6-30 16:20:59 | 显示全部楼层
调用find()的时候 程序比较的是两个指针的值,而不是它们指向字符串的内容因此不能实现你说的...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行