先定義了rtrim 去除空白符,由於fgets 會讀取「\n」html
再定義截取字符串的函數getSubString;ide
/* * C Program to print sub-string of a string */ #include <stdio.h> #include <string.h> #include <ctype.h> void rtrim(char *str); char* getSubString(char* inputString, char* subString, int index); int main(){ char inputString[100], subString[100]; int index; printf("Enter a String \n"); // gets(inputString); fgets(inputString, (sizeof inputString / sizeof inputString[0]), stdin); rtrim(inputString); printf("Enter starting position of sub-string and it's length \n"); scanf("%d", &index); printf("SubString is : %s \n", getSubString(inputString, subString, index)); return 0; } /* * Function to return substring of inputString starting * at position index and of length subStringLength */ char* getSubString(char* inputString, char* subString, int index){ int counter, subStringLength, inputStringLength = strlen(inputString); /* Input validation * range of sub-string must be in [0, strlen(inputString)] */ if(index < 0 || index > inputStringLength){ printf("Invalid Input"); return NULL; } subStringLength = inputStringLength - index; for(counter = 0; counter < subStringLength; counter++){ subString[counter] = inputString[index++]; } subString[counter] = '\0'; return subString; } void rtrim(char *str) { char *s; s = str + strlen(str); while (--s >= str) { if (!isspace(*s)) break; *s = 0; } }
進行字符串反轉的例子:
函數
#include <stdio.h> #include <conio.h> #include <string.h> void main() { char *str; int i,len; //not using any temp variable and assume we can use only string array and length printf("Enter String : "); scanf("%s",str); len=strlen(str)-1; for(i=0;i<strlen(str)/2;i++) { str[i]+=str[len]; str[len]=str[i]-str[len]; str[i]=str[i]-str[len--]; } printf("Reverse String is : %s",str); getch(); }
參考:spa
http://stackoverflow.com/questions/31314847/substring-in-c-programming?noredirect=1&lq=1 htm
http://www.cnblogs.com/rosesmall/archive/2012/03/27/2420335.html blog
http://www.techcrashcourse.com/2014/11/c-program-find-substring-of-string.html ip
http://www.geekinterview.com/question_details/21969 字符串
https://en.wikipedia.org/wiki/Comparison_of_programming_languages_(string_functions)#C.2FC.2B.2B get