| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 569 人关注过本帖
标题:求解惑!看看这个程序
只看楼主 加入收藏
superjian
Rank: 2
等 级:论坛游民
帖 子:8
专家分:15
注 册:2011-9-25
收藏
 问题点数:0 回复次数:5 
求解惑!看看这个程序
题目:编写函数功能:将m(1-10之间)个字符串连接起来,组成一个新串,放入P所指字符串中。
下面是程序,我想问一下,为什么再输入字符串数组前需要gets(s[0])这一句(用//标示)
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
void fun(char str[][10],int m,char *p)
{
     int k=0,q,i,j=0;
     for(k=0;k<m;k++)
     {
                     q=strlen(str[k]);
                     j+=q;
                     for(i =0;i<q;i++)
                      p[i]=str[k][i];
                      p+=q;
      
     }
    p[j]=0;
    p=p-j;
   
}
int main()
{
    int m,h;
    char s[10][10],p[100];
    printf("please input  m:");
    scanf("%d",&m);
    printf("please input %d strings:\n",m);
 //   gets(s[0]);
    for(h=0;h<m;h++)
    gets(s[h]);
    fun(s,m,p);
    printf("the result is:%s",p);
    system("pause");
    return 0;
}            
搜索更多相关主题的帖子: 字符串 include 标示 
2011-11-25 10:36
hxcet
Rank: 4
等 级:业余侠客
帖 子:78
专家分:229
注 册:2011-11-15
收藏
得分:0 
你这个程序中gets(s[0]);是不执行的,也不参与编译。。。因为前面有“//”,相当于把gets(s[0]);这个语句给变作注释一般了
2011-11-25 11:50
nice_wl
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2011-9-18
收藏
得分:0 
楼主的意思是问gets(s[0])在程序里的作用
2011-11-25 12:32
hellovfp
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:禁止访问
威 望:30
帖 子:2976
专家分:7697
注 册:2009-7-21
收藏
得分:0 
清一下缓冲区内容。

我们都在路上。。。。。
2011-11-25 12:45
nice_wl
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2011-9-18
收藏
得分:0 
楼上正解。楼主可以试下fflush(stdin)函数清除缓存。
2011-11-25 13:21
superjian
Rank: 2
等 级:论坛游民
帖 子:8
专家分:15
注 册:2011-9-25
收藏
得分:0 
回复 5楼 nice_wl
的确是清空缓存,我还想问一下,gets(s[0])是怎么做到清空缓存的呢?
2011-11-25 15:03
快速回复:求解惑!看看这个程序
数据加载中...
 
   



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

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