| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1877 人关注过本帖
标题:比较用指针比较5个字符串的大小.大家帮忙看看下面程序有什么问题??
只看楼主 加入收藏
gyfabc
Rank: 1
等 级:新手上路
帖 子:16
专家分:5
注 册:2012-4-20
结帖率:50%
收藏
已结贴  问题点数:20 回复次数:9 
比较用指针比较5个字符串的大小.大家帮忙看看下面程序有什么问题??
#include<iostream>
#include<string>
using namespace std;

int main()
{
cout<<"本程序比较用指针比较5个字符串的大小"<<endl;

int i,j;char *t,*ss[6],aa[15][15];

    for(i=0;i<5;i++)
        for(j=0;j<15;j++)
             cin>>aa[i][j];
    ss=aa;

cout<<"排列前的顺序:"<<endl;
for(i=0;i<5;i++)
    cout<<*(ss+i)<<" ";
cout<<endl;

for(i=0;i<4;i++)
    for(j=i+1;j<5;j++)
        if(strcmp(ss[i],ss[j])>0)
        {t=ss[i];
         ss[i]=ss[j];
         ss[j]=t;
        }
cout<<"排列后的顺序:"<<endl;
for(i=0;i<5;i++)
  cout<<*(ss+i)<<" ";
  cout<<endl;
return 0;

}
搜索更多相关主题的帖子: include 字符串 
2012-04-20 21:34
ab1034982749
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
帖 子:215
专家分:1185
注 册:2012-4-14
收藏
得分:15 
经过适当修改后得到的程序;
#include<iostream>

#include<string>
using namespace std;
int main()
{
cout<<"本程序比较用指针比较5个字符串的大小"<<endl;

int i=0,j;char *t,*ss[6],aa[15][15];

    for(i=0;i<5;i++)
             cin>>aa[i];
    for(i=0;i<5;i++)
        ss[i]=aa[i];

cout<<"排列前的顺序:"<<endl;
for(i=0;i<5;i++)
    cout<<ss[i]<<" ";
cout<<endl;

for(i=0;i<4;i++)
    for(j=i+1;j<5;j++)
        if(strcmp(ss[i],ss[j])>0)
        {t=ss[i];
         ss[i]=ss[j];
         ss[j]=t;
        }
cout<<"排列后的顺序:"<<endl;
for(i=0;i<5;i++)
  cout<<*(ss+i)<<" ";
  cout<<endl;
return 0;

}
希望对你有帮助
收到的鲜花
  • gyfabc2012-04-21 19:08 送鲜花  3朵   附言:我很赞同
2012-04-21 00:41
ab1034982749
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
帖 子:215
专家分:1185
注 册:2012-4-14
收藏
得分:0 
主要修改了:
 for(i=0;i<5;i++)
        for(j=0;j<15;j++)
             cin>>aa[i][j];
    ss=aa;

cout<<"排列前的顺序:"<<endl;
for(i=0;i<5;i++)
    cout<<*(ss+i)<<" ";
这段。
2012-04-21 00:43
gyfabc
Rank: 1
等 级:新手上路
帖 子:16
专家分:5
注 册:2012-4-20
收藏
得分:0 
回复 2楼 ab1034982749
谢谢你,程序这样的话就没问题了。但我有个问题,就是

   int main()
 {
 cout<<"本程序比较用指针比较5个字符串的大小"<<endl;
 
int i=0,j;char *t,*ss[6],aa[15][15];
 
    for(i=0;i<5;i++)
              cin>>aa[i];

中的for(i=0;i<5;i++)
              cin>>aa[i]
  cin>>a[i]是输入二维数组的吗?能不能用两个for语句输入a[i][j]代替?
2012-04-21 16:57
ToBeOOP
Rank: 3Rank: 3
等 级:论坛游侠
威 望:3
帖 子:106
专家分:181
注 册:2010-7-8
收藏
得分:5 
可以试下运行这段代码..我出错..但是可以输出结果..我把第二个下标上限设置为元素总数..还有一个问题就是..在数组为int时会出现">>"操作符不匹配的情况..char就可以
程序代码:
#include <iostream>
using std::cin;
using std::cout;
using std::endl;
int main( )  {
    char a[5][5]={' '};
    for(int i=0; i !=25;i++)  {
        cin >> a[i];
    }
    for(int i=0; i !=25;i++)  {
        cout << a[i];
    }
    return 0;
}

 
2012-04-21 17:47
ab1034982749
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
帖 子:215
专家分:1185
注 册:2012-4-14
收藏
得分:0 
cin>>a[i]是输入二维数组的吗?能不能用两个for语句输入a[i][j]代替?

cin>>a[i]是输入字符串的,而用两个循环的话
cin>>a[i][j];
这样输入的就是单个字符了。不是字符串。

2012-04-21 18:21
gyfabc
Rank: 1
等 级:新手上路
帖 子:16
专家分:5
注 册:2012-4-20
收藏
得分:0 
回复 5楼 ToBeOOP
会提示Compiling...
fdgdf.cpp
J:\33333\fhgfh\fdgdf.cpp(10) : error C2374: 'i' : redefinition; multiple initialization
2012-04-21 18:47
gyfabc
Rank: 1
等 级:新手上路
帖 子:16
专家分:5
注 册:2012-4-20
收藏
得分:0 
回复 6楼 ab1034982749
是的,我是输入二维字符,第一个字符串就占一行,然后我将 ss=aa;给指针数组,指针数组不就是指向二维数组的每一行了?
2012-04-21 18:52
ab1034982749
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
帖 子:215
专家分:1185
注 册:2012-4-14
收藏
得分:0 
回复 8楼 gyfabc
对于指针数组ss[6];因为他是个数组,所以ss和其他的一般数组一样是个常量,不能对它进行赋值,
ss是常量其值为系统对其分配内存空间的首地址。
2012-04-21 18:59
gyfabc
Rank: 1
等 级:新手上路
帖 子:16
专家分:5
注 册:2012-4-20
收藏
得分:0 
回复 9楼 ab1034982749
哦哦。原来如此,对指针还是吃不透
2012-04-21 19:06
快速回复:比较用指针比较5个字符串的大小.大家帮忙看看下面程序有什么问题??
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.014106 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved