注册 登录
编程论坛 C++教室

字符数组-字符串

shirley蝶 发布于 2008-10-29 18:17, 717 次点击
#include <iostream>  
  
void main(void)  
{  
    if("test"=="test")  
    {  
        cout<<"相等";  
    }  
    else  
    {  
        cout<<"不相等";  
    }  
}
正常情况是结果应该是相等,但结果是不相等,为什么?另外字符串常量为什么不能改变那?找一个指向字符串常量的指针,在通过指针改变它的内容不就可以了吗?自己知识浅薄,麻烦各位高手帮一下~~~~~~~~~
5 回复
#2
huxiangking2008-10-29 19:57
试过 用vc 是相等啊 只是加上 using namespace std;
字符串常量 能改吧
不清楚 嘿~ 改它干啥 常量 没啥意义
#3
haiyungood2008-10-29 21:34
这就相等了:
#include <iostream>  
using namespace std;
int main()  
{  
    if("test"=="test")  
    {  
        cout<<"相等";  
    }  
    else  
    {  
        cout<<"不相等";  
    }  
    return 0;
}
#4
tfg01162008-10-29 22:24
如果想修改字符串常量可用:
char ch[] = "abcd";
ch[1] = 's';//right
而如果写成:
char *ch = "abcd";
ch[1] = 's';//error
#5
shirley蝶2008-11-01 09:37
回复 4# 的帖子
正确的部分我懂了,谢谢,但后面的我是这样想的,
如果写成 :char *ch = "abcd";
          ch[1] = 's'就是代表定义了一个指向字符串的指针,*ch="s"是不是就可以改变字符串中的数据那?我感觉*ch="s"只是改变了ch[1]中的数据,如果想要改变后面的数据,用*ch[2]应该实现不了吧?
#6
shirley蝶2008-11-01 09:42
回复 2# 的帖子
谢谢了,但有的地方我还是不明白,
我知道using namespace std就是告诉编译器使用标准命名空间std,但是为什么加上这句话后就可以用了哪?
1