সি মধ্যে স্ট্রিং.ইনেন্ডঅফ ফাংশন

একটি সি গ্রন্থাগারের ফাংশন আছে যা একটি স্ট্রিং একটি অক্ষরের সূচক ফিরে আসবে?

এখন পর্যন্ত, আমি যে সব খুঁজে পেয়েছি তা হল স্ট্রস্ট্র্টের মতো ফাংশন যা পাওয়া যায় গৃহস্থালি * প্রদান করবে, মূল স্ট্রিং এর অবস্থান নয়।

0
ro fr hi

7 উত্তর

If you are not totally tied to pure C and can use string.h there is strchr() See here

0
যোগ
আমি "বিশুদ্ধ সি" দ্বারা আপনার মানে কি নিশ্চিত না কিন্তু strchr() এবং string.h হল 20 বছর জন্য স্ট্যান্ডার্ড সি অংশ হয়েছে।
যোগ লেখক Robert Gamble, উৎস

সম্পাদনা করুন: strchr শুধুমাত্র একটি গৃহস্থালি জন্য ভাল। পয়েন্টার অ্যারিমেটিক্স "হালো!" বলে:

char *pos = strchr (myString, '#');
int pos = pos ? pos - myString : -1;

Important: strchr() returns NULL if no string is found

0
যোগ
আপনি পরিবর্তনশীল নাম রান আউট না? ;-)
যোগ লেখক Isak Savo, উৎস
আপনার মন্তব্য কেন অনেক upvotes অর্জিত হয়েছে?
যোগ লেখক theonlygusti, উৎস
@ থেইনলিগাস্টি, আমি এই আরও বেশি সাম্প্রতিক (আমি নভেম্বর 15 '16 হিসাবে তারিখটি পড়েছি) ভেবেছিলাম, এবং একটি খারাপ কৌতুক ব্যাখ্যা করার জন্য পুরানো কথোপকথন পুনরুজ্জীবিত করার কোনও ইঙ্গিত নেই। যদি আমি অনুমান করতাম, আমি বলব যে আমার "অপ্রচলিত" মন্তব্যের পতাকাটি মোড দেখে এবং এটি মন্তব্যটি মুছে দেওয়ার জন্য একটি ক্যু হিসাবে গ্রহণ করেছিল, যেহেতু এটা ... অপ্রচলিত। অথবা কমপক্ষে অর্থহীন
যোগ লেখক Nic Hartley, উৎস

আপনি যা চান তা সম্পন্ন করার জন্য আপনি strstr ব্যবহার করতে পারেন। উদাহরণ:

char *a = "Hello World!";
char *b = strstr(a, "World");

int position = b - a;

printf("the offset is %i\n", position);

এই ফলাফল উত্পন্ন:

the offset is 6
0
যোগ
ইউবি যদি কোন ম্যাচ না (একই বস্তুর মধ্যে পয়েন্টার বিয়োগ)।
যোগ লেখক R.., উৎস

নিজের লিখুন :)

Code from a BSD licensed string processing library for C, called zString

https://github.com/fnoyanisi/zString

int zstring_search_chr(char *token,char s){
    if (!token || s=='\0')
        return 0;

    for (;*token; token++)
        if (*token == s)
            return 1;

    return 0;
}
0
যোগ

strstr returns a pointer to the found character, so you could use pointer arithmetic: (Note: this code not tested for its ability to compile, it's one step away from pseudocode.)

char * source = "test string";         /* assume source address is */
                                       /* 0x10 for example */
char * found = strstr( source, "in" ); /* should return 0x18 */
if (found != NULL)                     /* strstr returns NULL if item not found */
{
  int index = found - source;          /* index is 8 */
                                       /* source[8] gets you "i" */
}
0
যোগ
অক্ষর খুঁজে না হলে অনির্ধারিত আচরণ। এছাড়াও strstrr যথেষ্ট হবে যদি আপনি strstr (টাইপ ছাড়াই বা ছাড়া) ব্যবহার করা উচিত নয়।
যোগ লেখক R.., উৎস
প্রকৃতপক্ষে, কিন্তু OP একটি অক্ষর না একটি substring জন্য জিজ্ঞাসা। অবশ্যই যদি আপনি চারিত্রিকভাবে ব্যাখ্যা করতে চান যে multibyte অক্ষরগুলি অন্তর্ভুক্ত করা হয়, strstr ব্যবহার করার জন্য সঠিক ফাংশন।
যোগ লেখক R.., উৎস
@ রা .. - আমি টাইপটি সংশোধন করেছি এবং সিডকোডের মাধ্যমে ত্রুটি সংশোধন করা হয়েছে। এছাড়াও, strchr মাল্টি-অক্ষরের ক্রম খোঁজার জন্য কাজ করে না, তাই না?
যোগ লেখক Bill, উৎস
@ আর .. - যেহেতু ওপের লেখাটি অক্ষরের মতো কথা বলছিলো, যেহেতু গৃহস্থালিতে স্টোরেজ নাম নয়, তাই আমি এমন একটি সমাধান দিয়েছি যা একটি চরিত্রের মতো কাজ করার আশায় আছে? আপনি বস্তুর?
যোগ লেখক Bill, উৎস

আমি মনেকরি যে

size_t strcspn (const গৃহস্থানত * str1, const char * str2);

তুমি কি চাও? এখানে একটি উদাহরণ এখানে থেকে টানা হয়েছে:

/* strcspn example */
#include 
#include 

int main ()
{
  char str[] = "fcba73";
  char keys[] = "1234567890";
  int i;
  i = strcspn (str,keys);
  printf ("The first number in str is at position %d.\n",i+1);
  return 0;
}
0
যোগ
উপরোক্ত মন্তব্যটি খুবই গুরুত্বপূর্ণ - উদাহরণ হিসাবে এটি করা হচ্ছে সূচকের অনুকরণ করে না (), তাই মূল উত্তরটি অনেক বেশি ভুল।
যোগ লেখক GreenieMeanie, উৎস
strcspn এর মত আরো String.IndexOfAny() - কীগুলি অ্যারের মধ্যে যেকোন অক্ষর অনুসন্ধান করা হচ্ছে। কিন্তু হাঁ, এটা কৌতুক করব
যোগ লেখক Isak Savo, উৎস
আপনি কি খুঁজছেন তা সঠিকভাবে: stackoverflow.com/a/1479401/3395760
যোগ লেখক Ale Muzzi, উৎস

তুমি লিখতে পারো

s="bvbrburbhlkvp";
int index=strstr(&s,"h")-&s;

প্রদত্ত গালিগালিতে 'h' সূচকের সন্ধান করতে।

0
যোগ
strstr ফিরে আসতে পারে NULL যদি স্ট্রিং পাওয়া যায় না।
যোগ লেখক Ivan, উৎস