दिलचस्प पोस्ट
वाक्लॉक और डोज़ मोड गहरी प्रतिलिपि, उथले प्रतिलिपि, क्लोन क्यों और नहीं ? क्या आईओएस में फाइल के रूप में एनएसएमयूटीएबलएआरआरए या एनएसइएसटीई डेटा को सहेजना संभव है? एलेप्से प्रोजेक्ट के लिए जेडीके संस्करण कैसे बदला जाए क्या यह ठीक है अगर मैं जावा में घुंघराले ब्रेसिज़ को छोड़ूं? कुकीज का उपयोग करने के लिए मैं वेबमेल कैसे पा सकता हूं? जावा जेनेरिक्स (वाइल्डकार्ड) वास्तुकला MVC की तुलना में वेब एप्लिकेशन के लिए अधिक उपयुक्त है? एंड्रॉइड बाइनरी फ़ाइल समस्याएं डाउनलोड करें मर्ज (concat) एकाधिक JSONObjects विंडोज फॉर्म में पाठ लेबल में "और" प्रतीक दर्ज करें? किसी भी एक enum सामान्य बाधा की कमी के लिए एक अच्छा कामकाज पता है? डब्ल्यूसीएफ नामित पाइप का न्यूनतम उदाहरण बाश में एक पाठ फ़ाइल से एक सरणी का निर्माण

सी की जाँच करें सी में एक स्ट्रिंग में मौजूद है

मैं यह जांचने की कोशिश कर रहा हूं कि क्या स्ट्रिंग में सी में एक उपस्ट्रिंग है:

char *sent = "this is my sample example"; char *word = "sample"; if (/* sentence contains word */) { /* .. */ } 

string::find बजाय उपयोग करने के लिए कुछ क्या है string::find सी ++ में खोजें?

Solutions Collecting From Web of "सी की जाँच करें सी में एक स्ट्रिंग में मौजूद है"

 if(strstr(sent, word) != NULL) { /* ... */ } 

ध्यान दें कि strstr एक शब्द संकेतक को sent गए शब्द की शुरुआत में देता है यदि शब्द word मिला है।

इसके लिए strstr उपयोग करें

http://www.cplusplus.com/reference/clibrary/cstring/strstr/

तो, आप इसे लिखना चाहते हैं ..

 char *sent = "this is my sample example"; char *word = "sample"; char *pch = strstr(sent, word); if(pch) { ... } 

पॉइंटर्स का उपयोग करने की कोशिश करें …

 #include <stdio.h> #include <string.h> int main() { char str[] = "String1 subString1 Strinstrnd subStr ing1subString"; char sub[] = "subString"; char *p1, *p2, *p3; int i=0,j=0,flag=0; p1 = str; p2 = sub; for(i = 0; i<strlen(str); i++) { if(*p1 == *p2) { p3 = p1; for(j = 0;j<strlen(sub);j++) { if(*p3 == *p2) { p3++;p2++; } else break; } p2 = sub; if(j == strlen(sub)) { flag = 1; printf("\nSubstring found at index : %d\n",i); } } p1++; } if(flag==0) { printf("Substring NOT found"); } return (0); } 

आप दोनों को उपस्ट्रिंग की उपस्थिति ढूंढने और इसे निकालने और प्रिंट करने के लिए यह एक कोशिश कर सकते हैं:

 #include <stdio.h> #include <string.h> int main(void) { char mainstring[]="The quick brown fox jumps over the lazy dog"; char substring[20], *ret; int i=0; puts("enter the sub string to find"); fgets(substring, sizeof(substring), stdin); substring[strlen(substring)-1]='\0'; ret=strstr(mainstring,substring); if(strcmp((ret=strstr(mainstring,substring)),substring)) { printf("substring is present\t"); } printf("and the sub string is:::"); for(i=0;i<strlen(substring);i++) { printf("%c",*(ret+i)); } puts("\n"); return 0; } 

और यहां पाया गया सबस्ट्रिंग से पहले वर्ण की स्थिति की रिपोर्ट कैसे करें:

उपरोक्त कोड में इस रेखा को बदलें:

 printf("%s",substring,"\n"); 

साथ में:

 printf("substring %s was found at position %d \n", substring,((int) (substring - mainstring))); 

यह कोड किसी भी तैयार-किए गए फ़ंक्शन का उपयोग किए बिना खोज को कैसे कार्य करता है (एक तरीके से) का तर्क लागू करता है:

 public int findSubString(char[] original, char[] searchString) { int returnCode = 0; //0-not found, -1 -error in imput, 1-found int counter = 0; int ctr = 0; if (original.Length < 1 || (original.Length)<searchString.Length || searchString.Length<1) { returnCode = -1; } while (ctr <= (original.Length - searchString.Length) && searchString.Length > 0) { if ((original[ctr]) == searchString[0]) { counter = 0; for (int count = ctr; count < (ctr + searchString.Length); count++) { if (original[count] == searchString[counter]) { counter++; } else { counter = 0; break; } } if (counter == (searchString.Length)) { returnCode = 1; } } ctr++; } return returnCode; } 

यह इस सरल कोड के साथ हासिल किया जाएगा: इन का उपयोग क्यों करें:

 int main(void) { char mainstring[]="The quick brown fox jumps over the lazy dog"; char substring[20]; int i=0; puts("enter the sub stirng to find"); fgets(substring, sizeof(substring), stdin); substring[strlen(substring)-1]='\0'; if (strstr(mainstring,substring)) { printf("substring is present\t"); } printf("and the sub string is:::"); printf("%s",substring,"\n"); return 0; } 

लेकिन मुश्किल हिस्सा यह रिपोर्ट करने के लिए होगा कि किस स्थिति में मूल स्ट्रिंग में सबस्टेशन शुरू होता है …

 #include <stdio.h> #include <string.h> int findSubstr(char *inpText, char *pattern); int main() { printf("Hello, World!\n"); char *Text = "This is my sample program"; char *pattern = "sample"; int pos = findSubstr(Text, pattern); if (pos > -1) { printf("Found the substring at position %d \n", pos); } else printf("No match found \n"); return 0; } int findSubstr(char *inpText, char *pattern) { int inplen = strlen(inpText); while (inpText != NULL) { char *remTxt = inpText; char *remPat = pattern; if (strlen(remTxt) < strlen(remPat)) { /* printf ("length issue remTxt %s \nremPath %s \n", remTxt, remPat); */ return -1; } while (*remTxt++ == *remPat++) { printf("remTxt %s \nremPath %s \n", remTxt, remPat); if (*remPat == '\0') { printf ("match found \n"); return inplen - strlen(inpText+1); } if (remTxt == NULL) { return -1; } } remPat = pattern; inpText++; } }