對于字串“abcdefghijklmn”,讀入兩個數字,比如begin、num,假定begin為1,num為5,則動態申請記憶體,存放子串“bcdef”,最后輸出該子串。簡化起見,假定begin、num都在有效范圍內。設計main函式, 同時要展示出字串和動態記憶體的地址。



uj5u.com熱心網友回復:
char* func(char* str,int begin,int num)
{
char* result = (char*)malloc(sizeof(char)*(num+1));
memcpy(result,str+begin,sizeof(char)*num);
result[num]='\0';
return result;
}
uj5u.com熱心網友回復:
//對于字串“abcdefghijklmn”,讀入兩個數字,比如begin、num,假定begin為1,num為5,
//則動態申請記憶體,存放子串“bcdef”,最后輸出該子串。
//簡化起見,假定begin、num都在有效范圍內。設計main函式, 同時要展示出字串和動態記憶體的地址
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <malloc.h>
int main() {
char *s="abcdefghijklmn";
int begin,num;
char *p;
scanf("%d%d",&begin,&num);
p=(char *)malloc(num+1);
if (NULL==p) {
printf("Can not malloc(%d bytes)!\n",num+1);
return 1;
}
strncpy(p,s+begin,num);
p[num]=0;
printf("%s\n",p);
printf("0x%p\n",p);
free(p);
return 0;
}
//輸入
//1 5
//輸出
//bcdef
//0x012DDC38
//
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/236815.html
標籤:C語言
下一篇:請教一個簡單演算法。
