| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 421 人关注过本帖
标题:把一个字符组插到另一个字符组的问题
只看楼主 加入收藏
cyy06180521
Rank: 1
等 级:新手上路
帖 子:36
专家分:0
注 册:2015-8-21
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:5 
把一个字符组插到另一个字符组的问题
想写一个把一个字符串插到另一个字符串指定位置的程序,但是写完之后果然没有成功T^T,压根没有输出东西,求原因.........

以下是程序:
程序代码:
#include<stdio.h>
#include<string.h>


int main(void){
    char s[1000];   //s是需要插入的字符组
    char t[1000];   //t将被插入s中
    int k;          //k是指定位置

    
    gets(s);
    gets(t);
    scanf("%d",&k);
        
    int insert_string(char s[],char t[],int k);
        
    return 0;
}

int insert_string(char s[],char t[],int k){
    int i = 0;
    int j;
    char temp[1000];
    int len;
    
    len = strlen(s);
    
    if(k > len) {            //如果k大于s的长度,t就要插到s最后面
        strcat(s,t);
        printf("%s\n",t);
    }
    else if(k < 0){          //如果k<0,t就要插到s最前面
        strcat(t,s); 
        printf("%s\n",s);         
    }
    else{
        for(j = 0; j < k - 1; j++){     //将s的i位前的字符复制到temp中
            temp[j] = s[j];
        }
        j--;
        while(t[i] != '\0'){            //将t复制到temp尾部
            j++;
            temp[j] = t[i];
            i++;
        }    
        i = k - 1;
        while(s[i] != '\0'){            //将s的i位后字符复制到temp尾部
            j++;
            temp[j] = s[i];
            i++;
        }
        j++;
        temp[j] = '\0';
        
        
        printf("%s\n",temp);
    }    
     
    return 0;
}            





求大神改进加指导,谢谢!!!
搜索更多相关主题的帖子: 字符串 color 
2015-10-13 16:58
azzbcc
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:江西财经大学
等 级:贵宾
威 望:81
帖 子:3293
专家分:12919
注 册:2012-11-4
收藏
得分:10 
insert_string没调用


[fly]存在即是合理[/fly]
2015-10-13 17:09
wmf2014
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:216
帖 子:2039
专家分:11273
注 册:2014-12-6
收藏
得分:10 
这位妹妹,你只是声明了插入函数,可没有调用这个函数啊。在main函数的函数声明后面加个调用就行了,如下:
int main(void){
    char s[1000];   //s是需要插入的字符组
    char t[1000];   //t将被插入s中
    int k;          //k是指定位置

   
    gets(s);
    gets(t);
    scanf("%d",&k);
        
    int insert_string(char s[],char t[],int k);
    insert_string(s,t,k);    
    return 0;
}

能编个毛线衣吗?
2015-10-13 17:16
cyy06180521
Rank: 1
等 级:新手上路
帖 子:36
专家分:0
注 册:2015-8-21
收藏
得分:0 
好吧......我之前有试过直接insert_string(char s[],char t[],int k);然后说是错误.......不知道括号里要那样写......还是菜鸟一只,请无视
2015-10-13 17:28
cyy06180521
Rank: 1
等 级:新手上路
帖 子:36
专家分:0
注 册:2015-8-21
收藏
得分:0 
回复 3楼 wmf2014
恩......谢谢大神,这个错误请无视,可是当k<0和k>len的时候还是没有用,只输出了原本的s和t,why??
2015-10-13 17:33
山桀骜云轻狂
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2015-10-12
收藏
得分:0 
还有就是构造函数必须写在主函数前面,这样最好
2015-10-13 19:14
快速回复:把一个字符组插到另一个字符组的问题
数据加载中...
 
   



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

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