| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 650 人关注过本帖
标题:字符串处理
只看楼主 加入收藏
想你的天空
Rank: 2
等 级:新手上路
威 望:5
帖 子:610
专家分:0
注 册:2004-12-30
收藏
 问题点数:0 回复次数:2 
字符串处理
#include"stdio.h"
#include"string.h"
typedef struct
  { char vec[30];
    int len;
  }node;
//把串r2插入到串r1的第i个字符开始的位置上
void *insert(node *r1,node *r2,int i)
{  int k;
   if(i>=r1->len)   printf("不能插入!");
   else
   {  for(k=r2->len-1;k>=i;k--)
        r1->vec[r2->len+k]=r1->vec[k];
      for(k=0;k<r2->len;k++)
        r1->vec[i+k-1]=r2->vec[k];
      r1->len=r1->len+r2->len;
      r1->vec[r1->len]='\0';
   }
   return r1;
}
main()
{  node *r1,*r2;
   int i;
   r1=(node*)malloc(sizeof(node));
   r2=(node*)malloc(sizeof(node));
     strcpy(r1->vec,"abcdefg");
     strcpy(r2->vec,"234");
     r1->len=strlen(r1->vec);
     r2->len=strlen(r2->vec);
     scanf("%d",&i);
     insert(r1,r2,i);
     printf("%s\n",r1->vec);
}//比如说  abcd  在第1位插入 11,结果应该是a11bcd     而不是 a11d
搜索更多相关主题的帖子: 字符 
2005-03-29 19:24
mingyue
Rank: 1
等 级:新手上路
帖 子:60
专家分:0
注 册:2004-5-13
收藏
得分:0 

直接用数组来写直观一点 #include"stdio.h" #include"string.h"

void insert(char str1[],char str2[],int k) { int i; char str3[30]; char *p1,*p2; p1=str1; p2=str2; strcpy(str3,str1); for(i=0;i<k;i++) p1++; while(*p2!='\0') { str3[i]=*p2; i++; p2++; } while(*p1!='\0') { str3[i]=*p1; i++; p1++; } strcpy(str1,str3); }

main() { char str1[30]="abcde"; char str2[30]="123"; int i; printf("input insert position:\n"); scanf("%d",&i); insert(str1,str2,i); printf("%s",str1); getch(); }

[此贴子已经被作者于2005-3-29 21:53:46编辑过]


2005-03-29 21:49
luckbird
Rank: 1
等 级:新手上路
帖 子:30
专家分:0
注 册:2005-3-21
收藏
得分:0 
                  #include"stdio.h"
#include"string.h"
typedef struct
  { char  vec[30];
    int len;
  }node;
/*/把串r2插入到串r1的第i个字符开始的位置上*/
void *insert(node *r1,node *r2,int i)
{  int k;
   if(i&gt;=r1-&gt;len)   printf("不能插入!");
   else
   {  for(k=r1-&gt;len-1;k&gt;=i-1;k--)
        r1-&gt;vec[r2-&gt;len+k]=r1-&gt;vec[k];
      for(k=0;k&lt;r2-&gt;len;k++)
        r1-&gt;vec[i+k-1]=r2-&gt;vec[k];
      r1-&gt;len=r1-&gt;len+r2-&gt;len;
      r1-&gt;vec[r1-&gt;len]='\0';
   }
   return r1;
}
main()
{  node *r1,*r2;
   int i;
   r1=(node*)malloc(sizeof(node));
   r2=(node*)malloc(sizeof(node));
     strcpy(r1-&gt;vec,"abcdefg");
     strcpy(r2-&gt;vec,"234");
     r1-&gt;len=strlen(r1-&gt;vec);
     r2-&gt;len=strlen(r2-&gt;vec);
     scanf("%d",&amp;i);
     insert(r1,r2,i);
     printf("%s\n",r1-&gt;vec); getch();
}/*比如说  abcdefg  在第1位插入 234,结果是234abcdefg*/

2005-04-04 22:13
快速回复:字符串处理
数据加载中...
 
   



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

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