首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

编写一个求字串的函数sub_str(char *s1,char *s2,int m,int n),作用是将字符串s1中从第m个字符开始的n个字放入字符串s2中;

2012-03-07 
编写一个求字串的函数sub_str(char *s1,char *s2,int m,int n),作用是将字符串s1中从第m个字符开始的n个字

编写一个求字串的函数sub_str(char *s1,char *s2,int m,int n),作用是将字符串s1中从第m个字符开始的n个字放入字符串s2中;
编写一个求字串的函数sub_str(char *s1,char *s2,int m,int n),作用是将字符串s1中从第m个字符开始的n个字放入字符串s2中;
问题出在什么地方,求高手指出问题的地方
#include"stdio.h"
#include"string.h"
  void sub_str(char *s1,char *s2,int m,int n){
   

  int l1,l2,i;
   
  l2=strlen(s2);
  for(i=m;i<=n;i++)
  {
   
  (s2+l2-1)++=(s1+m-1)++;}
  printf("%s",s2);}
  int main(){
  int m=0,n=0;
  char* s1;
  char* s2;
  char a[80],b[80];
  s1=a;
  s2=b;
  printf("输入字符串1");
  gets(s1);
  printf("输入字符串2"); 
  gets(s2);
  printf("输入m和n的值");
  scanf("%d %d",&m,&n);
  sub_str(s1,s2,m,n);}

[解决办法]
实现得文艺一点应该像下面

C/C++ code
void sub_str(char *s1,char *s2,int m,int n){    memcpy(s2,s1+m,sizeof(char)*n);}
[解决办法]
下标从0算还是1算,根据自己的需要选择就可以了
[解决办法]
仅供参考,虽然不是C语言。(字符串下标从1开始数)
C/C++ code
func strmid(len,str1,str2,pos)dec    var string1:127;enddec    string1=ljust(str1," ",len);    if (pos eq 1)        string1=str2               &substr(string1, pos+length(str2));    else        string1=substr(string1, 1, pos-1)               &str2               &substr(string1, pos+length(str2));    endif    string1=substr(string1,1,len);    return string1;endfunc
[解决办法]
代码我就不贴了, 没意思, LZ,貌似是你在赋值那个循环后没有加个'\0' , 也就是s2[i] = '\0' ,亲 , 不信你可以试一下.

热点排行