标题:指针方面很菜,求大佬看看。
只看楼主
亍_
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2018-11-11
结帖率:25%
已结贴  问题点数:20 回复次数:2 
指针方面很菜,求大佬看看。
用指向指针的指针的方法对5个字符串进行排序。
#include<stdio.h>
#include<string.h>
int main()
{
    char *s[5],**p;
    int i,j,
    printf("输入5个字符串:\n");
    for(i=0;i<5;i++)
    {
        scanf("%s",s[i]);
        p=s+i;
    }
    for(i=0;i<5;i++)
    {
        for(j=0;j<5-i;j++)
        {
            if(strcmp(*(p+i),*(p+i+1))>0)
                strcpy(*(p+i),*(p+i+1));
        }
    }
    for(i=0;i<5;i++)  
        printf("%s,",*(p+i));
    return 0;
}
错误
Compiling...
Cpp1.cpp
D:\C语言\Cpp1.cpp(7) : error C2440: 'initializing' : cannot convert from 'char [16]' to 'int'
        This conversion requires a reinterpret_cast, a C-style cast or function-style cast
D:\C语言\Cpp1.cpp(22) : error C2064: term does not evaluate to a function
Error executing cl.exe.

Cpp1.obj - 2 error(s), 0 warning(s)
这要怎么改啊???
搜索更多相关主题的帖子: 指针 int for i++ cpp 
2018-12-17 22:24
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:10 
char *s[5],**p;
        scanf("%s",s[i]); s[i]是存放一个指针,指向的字符串空间地址还未定义。
2018-12-19 04:27
kfyniriu
Rank: 6Rank: 6
等 级:侠之大者
威 望:9
帖 子:105
专家分:426
注 册:2018-7-6
得分:10 
首先要定义一个地址存放字符串。例如: char s[5][50]
接着再定义一个指向字符串数组的指针。 例如: char *c[5]
再接着将指针指向每一个字符串的首地址。 例如:
for(i=0;i<5;i++)
    {
        scanf("%s",s[i]);
        c[i]=&s[i][0];
    }

PS:定义的指针类型,指针的地址只能是存放指针指向的地址,不能存放其他类型的数据,所以字符串必须定义一个地址存放,然后指针再指向字符串
2018-12-19 13:20



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-492101-1-1.html




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

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