首页 > 试题广场 >

有一字符串,包含n个字符。写一函数,将此字符串中从第m个字符

[问答题]

有一字符串,包含n个字符。写一函数,将此字符串中从第m个字符开始的全部字

符复制成为另一个字符串。要求用指针方法处理。

推荐

#include<stdio.h>

#include<string.h>

int main()

{void copystr(char *,char *,int);

int m;

char str1[20],str2[20];

printf(“input string:");

gets(str1);

printf("which character that begin to copy?");

scarf("%d”,&m);

if(strlen(str1)<m)

printf(“input error!");

else

{copystr(str1,str2,m);

printf("result:%s\n",str2);

}

return0;

}


void copystr(char *p1,char *p2,int m)

{int n;

n=0;

while(n<m-1)

{n++;

p1++;

}

while(*p1!=’\0’)

{*p2=*p1;

p1++;

p2++;

}

*p2=’\0’;

}


发表于 2018-03-25 10:32:08 回复(0)
更多回答
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char * copy(char * origin, int start){
 int length = strlen(origin);
 char* trans = malloc(sizeof(char) * (length - start));
 memcpy(trans, origin + start , sizeof(char) * (length - start));
 * (trans + length - start + 1) = 0;
 return trans;
}
int main(){
 int start ;
 scanf("%d", &start);
 char* origin = malloc(sizeof(char) * 1000);
 gets(origin);
 char* trans = copy(origin, start);
 puts(trans);
}
发表于 2020-01-03 00:28:22 回复(0)
#include<stdio.h>
#include<string.h>

int main()
{
    void copystr(char *str1,char*str2,int m);

   char str1[20],str2[30];

    printf("input a string");

    gets(str1);

    if(strlen(str1)<m)

    printf("it is error");

    else     copystr(str1,str2,m);   
    printf("the result is %s",str2);

    retuen 0;}

void copystr(char *str1,char *str2,int m)/*字符串复制函数,用到指针*/
{
    char*p1,*p2;

    p1=str1;p2=str2;

    int n=0;

    while(n<m)
    {
    p1++;

    n++;
    }
     while(*p1='\0')
     {
     *p1=*p2;
     p1++;
     p2++;
     }
     *p2='\0';
     }
     

发表于 2018-05-21 13:52:09 回复(0)