【c語言】從字串str中擷取一個子串,要求子串是從str的第m個字元開始 由n個字元組成
阿新 • • 發佈:2018-12-05
#include<stdio.h> #include<string.h> /* 編寫程式:從字串str中擷取一個子串,要求子串是從str的第m個字元開始 由n個字元組成 程式理解: 需求中要求的是從一個字串中擷取固定的長度 m---->是開始的個數 n---->是擷取的長度 因此 **/ void main(){ char c [30],*p,*ch = {"abcdefgh"}; int m,n,i; printf("enter m,n:"); scanf("%d %d",&m,&n); if(m>strlen(ch)||m<=0||n<=0) printf("data is problom"); else { //擷取字串的長度 for(p=ch+m-1,i=0;i<n;i++){ //條件就是ch+m-1 ch+m 表示開始的位置 但是因為陣列下標是從0開始 所以減一操作 if(*p) c[i] = *p++; //通過判斷*p 是否指向了一個值 來結束 else break; //條件判斷 如果遇到結束標誌'\0' 就跳出迴圈 } c[i] = '\0'; //在程式的結尾處 新增上結束標誌 '\0' printf("%s\n",c); } }