标题:关于通过指针引用字符串的一些问题。
只看楼主
幻想乡流浪者
Rank: 2
来 自:种花家
等 级:论坛游民
帖 子:27
专家分:21
注 册:2015-6-6
结帖率:75%
已结贴  问题点数:20 回复次数:13 
关于通过指针引用字符串的一些问题。
void shuru(char *p1,char *p2)
{
    char a[M],b[M];
    gets_s(a);
    gets_s(b);
    p1=a;
    p2=b;
}

void shuchu(char *p1,char *p2)
{
    puts(p1);
    puts(p2);
}
int main()
{
    char a[M]="I love china!";
    char b[M]="I am a student";
    //char *p1,*p2;
    int n=0;
    printf("请输入要进入的程序(1-7):");
    scanf("%d",&n);
    while(n!=7)
    {
        switch(n)
        {
        case 1: shuru(a,b); break;
        case 2: shuchu(a,b);break;
        case 3: found(a,b); break;
        case 4: bijiao(a,b);break;
        case 5: lianjie(a,b);break;
        case 6: lenth(a);break;
        case 7: ;break;
        }
        scanf("%d",&n);
    }
    return 0;
}
我写的是这样,但是调试的时候出现了很多问题QAQ;
1、调用输入函数后,在调用输出函数,结果没反应;

2、要连续调用两次输出函数才能实现;
希望能指点一下。
搜索更多相关主题的帖子: 字符串 china 
2015-06-06 15:44
幻想乡流浪者
Rank: 2
来 自:种花家
等 级:论坛游民
帖 子:27
专家分:21
注 册:2015-6-6
得分:0 
回复 2楼 边小白
。。。我好像走错片场了@_@
2015-06-06 16:13
诸葛欧阳
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:流年
等 级:贵宾
威 望:82
帖 子:2790
专家分:14619
注 册:2014-10-16
得分:10 
首先函数定义不够,第二,while里面n不会等于7,第三,指针使用有误

一片落叶掉进了回忆的流年。
2015-06-06 16:27
幻想乡流浪者
Rank: 2
来 自:种花家
等 级:论坛游民
帖 子:27
专家分:21
注 册:2015-6-6
得分:0 
回复 4楼 诸葛欧阳
while里面是当n等于7时结束程序,指针错误是指输入函数的指针吗?
2015-06-06 16:55
幻想乡流浪者
Rank: 2
来 自:种花家
等 级:论坛游民
帖 子:27
专家分:21
注 册:2015-6-6
得分:0 
回复 4楼 诸葛欧阳
函数在头文件里面都定义了的。
2015-06-06 16:56
幻想乡流浪者
Rank: 2
来 自:种花家
等 级:论坛游民
帖 子:27
专家分:21
注 册:2015-6-6
得分:0 
还有用断点之后发现我只能返回第一个字符串的内容,第二个不行。
2015-06-06 17:04
诸葛欧阳
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:流年
等 级:贵宾
威 望:82
帖 子:2790
专家分:14619
注 册:2014-10-16
得分:0 
以下是引用幻想乡流浪者在2015-6-6 16:55:31的发言:

while里面是当n等于7时结束程序,指针错误是指输入函数的指针吗?

那你写case7干嘛

一片落叶掉进了回忆的流年。
2015-06-06 19:22
诸葛欧阳
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:流年
等 级:贵宾
威 望:82
帖 子:2790
专家分:14619
注 册:2014-10-16
得分:0 
shuru()这个函数传入空指针就行,你把数组传入会改变数组内容

一片落叶掉进了回忆的流年。
2015-06-06 19:24
wmf2014
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:216
帖 子:2039
专家分:11273
注 册:2014-12-6
得分:10 
很显然,对指针的理解不到位。你的shuru函数不管传什么指针,都不会影响你在main函数里定义的两个字符串。另应该在输入函数中先清空输入缓冲区,否则第一个gets函数将收不到值,所以shuru函数修改如下,应该达到你的目的:
程序代码:
void shuru(char *p1,char *p2)
{
    flushall();
    gets_s(p1);
    gets_s(p2);
}


 

能编个毛线衣吗?
2015-06-06 19:47
幻想乡流浪者
Rank: 2
来 自:种花家
等 级:论坛游民
帖 子:27
专家分:21
注 册:2015-6-6
得分:0 
回复 8楼 诸葛欧阳
额,那是因为第七个选项是结束程序,调试的时候会输出各个模块的功能,第七个是结束,所以写了case 7.
2015-06-06 21:09



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




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

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