1. 程式人生 > >【c語言】從字串str中擷取一個子串,要求子串是從str的第m個字元開始 由n個字元組成

【c語言】從字串str中擷取一個子串,要求子串是從str的第m個字元開始 由n個字元組成

#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);
	}




}