| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 377 人关注过本帖
标题:字符串插入
只看楼主 加入收藏
烟雾中的迷茫
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
帖 子:621
专家分:1069
注 册:2011-2-9
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:3 
字符串插入
程序代码:
#include<stdio.h>

char *insert(char *s,char *p,int n)
{
    char *str,strcp[50];
    int i;
    str=strcp;
    for(i=0 ;*s != '\0' ;i++)
    {
        if(i == n-1)
            for( ;*p != '\0'; )
            {
                str[i]=*p;
                p++;
                i++;
            }
        str[i]=*s;
              s++;
    }

    str[i+1]='\0';
    return str;
}

void main()
{
    int n;
    char *a,*b;

    a="we are  friends";
    b="good";

    printf("please input the position\n");
    scanf("%d",&n);

    a=insert(a,b,n);
    printf("%s\n",a);
    getch();
}
大家找找看问题在哪 这是一个字符串插入函数  得不到想要的结果
搜索更多相关主题的帖子: 字符串 color 
2011-06-25 13:10
lz1091914999
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:四川
等 级:贵宾
威 望:37
帖 子:2011
专家分:5959
注 册:2010-11-1
收藏
得分:3 
你的代码太难看啦,我写了一个:
程序代码:
#include <stdio.h>
#include <string.h>
#define SIZE 81

// to的空间不足或index越界运行结果不确定
char * str_insert(char * to, const char * from, int index) {
    int i, from_size = strlen(from);
    for(i = strlen(to) + from_size; i >= index + from_size; i--)
        to[i] = to[i - from_size];
    for(i = 0; i < from_size; i++)
        to[i + index] = from[i];
    return to;
}

int main(void) {
    char str1[SIZE] = "123456789";
    char str2[SIZE] = "123";
    str_insert(str1, str2, 9);
    printf("%s\n", str1);
    str_insert(str1, str2, 3);
    printf("%s\n", str1);
    return 0;
}
/* Output:
123456789123
123123456789123

Process returned 0 (0x0)   execution time : 0.016 s
Press any key to continue.
*/


My life is brilliant
2011-06-25 13:53
hjywyj
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:3
帖 子:1114
专家分:2611
注 册:2010-4-14
收藏
得分:3 
程序代码:
char s1[200],s2[200];
   int j,k,n;
   printf("input string s1:\n");
   gets(s1);
   printf("input string s2:\n");
   gets(s2);
   printf("input the insert location:\n");
   scanf("%d",&n);
   if (n>strlen(s1))
     n=strlen(s1);
   for (j=n,k=strlen(s2);j<strlen(s1);j++,k++)
     s2[k]=s1[j];
   s2[k]='\0';
   s1[n]=0;
  strcat(s1,s2);
   printf("the after insert,s1=[%s]\n",s1);

仅供参考!
2011-06-25 14:22
ansic
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:恍惚窈冥
等 级:城市猎人
帖 子:1543
专家分:5367
注 册:2011-2-15
收藏
得分:4 
咋写出来这么难看!
程序代码:
void insert (char *a,char *b,int n) {
        char *c;
        int i=0;

        while(*(a+i)&&i<n) {
                *(c+i)=*(a+i);
                i++;
        }

        while(*b) *(c+(i++))=*b++;

        while(*(a+n)) *(c+(i++))=*(a+(n++));

        *(c+i)='\0';

        strcpy(a,c);
}

善人者,不善人之师;不善人者,善人之资。不贵其师,不爱其资,虽智大迷。
2011-06-25 16:36
快速回复:字符串插入
数据加载中...
 
   



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

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