首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

初学c++,cout英文为什么是一个上下箭头的字符,多谢

2012-04-15 
初学c++,cout英文为什么是一个上下箭头的字符,谢谢#include iostream.h#includestring.hvoidmain(){ch

初学c++,cout英文为什么是一个上下箭头的字符,谢谢
#include <iostream.h>
#include   <string.h>

void   main()
{

char   *s[]={ "c ", "cccce ", "ccc "};
        char   *p=s[0];
char   c;

for(int   i=1;i <5;i++)
    if(strcmp(p,s[i]) <0)
      p=s[i];

    cout < < "the   max   string   is "   < <p < < "|| " < <endl;

c=*p;
for(int   j=0;j <strlen(p);j++)
if(c <*p++)
  c=*p;
     
cout < < "the   max   char   is: " < <c < < "|| " < <endl;


}


结果:the   max   string   is?   X     //这个X是一个上下的箭头


[解决办法]
数组越界了吧
[解决办法]
void main()
{

char *s[]={ "c ", "cccce ", "ccc "};
char *p=s[0];
char c;

//for(int i=1;i <5;i++)//这里越界
for(int i=1;i <3;i++)
if(strcmp(p,s[i]) <0)
p=s[i];
cout < < "the max string is: " < <p < < "|| " < <endl;


c=*p;
for(int j=0;j <strlen(p);j++)
{
//if(c <*p++)//这里先把指针后移了
// c=*p;//这里的c得到了后一个字符
if(c <*p)
c=*p;
p++;
}

cout < < "the max char is: " < <c < < "|| " < <endl;


}

[解决办法]
请教一下:可以把
char *s[]={ "c ", "cccce ", "ccc "};
char *p=s[0];
写成:
char (*s)[2]={ "c ", "cccce ", "ccc "};
char *p=s;
吗?
[解决办法]
char *s[]={ "c ", "cccce ", "ccc "};
char *p=s[0];
不可以写成如下格式:
char (*s)[2]={ "c ", "cccce ", "ccc "};//无法通过编译的
char *p=s;

1.char *s[] s首先是数组(数组名),该数组中存放的是指向字符类型的指针。
2.char (*s)[2] s首先是指针,指向拥有两个元素的数组。


[解决办法]
To LS:
------------------------------------------------
char *s[]={ "c ", "cccce ", "ccc "}; // 声明一个数组,每个元素都是 char 的指针;
char *p=s[0]; // 用数组的首元素初始化 *p;

------------------------------------------------
char (*s)[2]={ "c ", "cccce ", "ccc "}; // 声明一个数组指针;
char *p=s; // 类型不匹配; 试图将一个指向数组的指针赋予 char 型指针;

[解决办法]
strlen返回值是unsigned , 你定义的j 是signed ,比较的时候做了隐式转换
[解决办法]
这么说,你那个书貌似比较差。建议换C++ Primer。

热点排行