A<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://www.cppe.ru/index.php?action=history&amp;feed=atom&amp;title=C%2FString%2FString_Search</id>
		<title>C/String/String Search - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://www.cppe.ru/index.php?action=history&amp;feed=atom&amp;title=C%2FString%2FString_Search"/>
		<link rel="alternate" type="text/html" href="http://www.cppe.ru/index.php?title=C/String/String_Search&amp;action=history"/>
		<updated>2026-04-17T22:22:54Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://www.cppe.ru/index.php?title=C/String/String_Search&amp;diff=152&amp;oldid=prev</id>
		<title> в 14:20, 25 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://www.cppe.ru/index.php?title=C/String/String_Search&amp;diff=152&amp;oldid=prev"/>
				<updated>2010-05-25T14:20:56Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 14:20, 25 мая 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
			</entry>

	<entry>
		<id>http://www.cppe.ru/index.php?title=C/String/String_Search&amp;diff=153&amp;oldid=prev</id>
		<title>Admin: 1 версия:&amp;#32;Импорт контента...</title>
		<link rel="alternate" type="text/html" href="http://www.cppe.ru/index.php?title=C/String/String_Search&amp;diff=153&amp;oldid=prev"/>
				<updated>2010-05-25T10:22:20Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия: Импорт контента...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==A demonstration of seeking and finding==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;string.h&amp;gt;&lt;br /&gt;
void main()&lt;br /&gt;
{&lt;br /&gt;
  char str1[] = &amp;quot;This string contains the key.&amp;quot;;&lt;br /&gt;
  char str2[] = &amp;quot;the key&amp;quot;;&lt;br /&gt;
  char str3[] = &amp;quot;the keys&amp;quot;;&lt;br /&gt;
  if(strstr(str1, str2) == NULL)&lt;br /&gt;
    printf(&amp;quot;\nString not found.&amp;quot;);&lt;br /&gt;
  else&lt;br /&gt;
    printf(&amp;quot;\nString: %s\n was found in string: %s&amp;quot;,str2, str1);&lt;br /&gt;
  if(strstr(str1, str3) == NULL)&lt;br /&gt;
    printf(&amp;quot;\nString not found.&amp;quot;);&lt;br /&gt;
  else&lt;br /&gt;
    printf(&amp;quot;\nWe shouldn&amp;quot;t get to here!&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Find character in string: how to use strchr==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;string.h&amp;gt;&lt;br /&gt;
int main ()&lt;br /&gt;
{&lt;br /&gt;
  char str[] = &amp;quot;This is a line&amp;quot;;&lt;br /&gt;
  char *p;&lt;br /&gt;
  &lt;br /&gt;
  printf (&amp;quot;Looking for &amp;quot;s&amp;quot; character in \&amp;quot;%s\&amp;quot;...\n&amp;quot;, str);&lt;br /&gt;
  &lt;br /&gt;
  p = strchr(str, &amp;quot;s&amp;quot;);&lt;br /&gt;
  &lt;br /&gt;
  while (p != NULL) {&lt;br /&gt;
    printf (&amp;quot;found at %d\n&amp;quot;,p - str + 1);&lt;br /&gt;
    p = strchr(p + 1, &amp;quot;s&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Finding occurrences of one string in another: strstr==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;string.h&amp;gt;&lt;br /&gt;
#include &amp;lt;ctype.h&amp;gt;&lt;br /&gt;
void main() {&lt;br /&gt;
  char text[100];             &lt;br /&gt;
  char substring[40];         &lt;br /&gt;
  int i = 0;                  &lt;br /&gt;
  &lt;br /&gt;
  printf(&amp;quot;\n string to be searched(less than 100 characters):\n&amp;quot;);&lt;br /&gt;
  gets(text);&lt;br /&gt;
  &lt;br /&gt;
  printf(&amp;quot;\n string sought (less than 40 characters ):\n&amp;quot;);&lt;br /&gt;
  gets(substring);&lt;br /&gt;
 &lt;br /&gt;
  /* Convert both strings to upper case. */&lt;br /&gt;
  for(i = 0 ; (text[i] = toupper(text[i])) != &amp;quot;\0&amp;quot; ; i++);&lt;br /&gt;
  for(i = 0 ; (substring[i] = toupper(substring[i])) != &amp;quot;\0&amp;quot; ; i++);&lt;br /&gt;
    printf(&amp;quot;\nThe second string %s found in the first.\n&amp;quot;,&lt;br /&gt;
              ((strstr(text, substring) == NULL) ? &amp;quot;was not&amp;quot; : &amp;quot;was&amp;quot;));&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Find last occurrence of character in string==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;string.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
int main(void)&lt;br /&gt;
{&lt;br /&gt;
  char *p;&lt;br /&gt;
  p = strrchr(&amp;quot;this is a test&amp;quot;, &amp;quot;i&amp;quot;);&lt;br /&gt;
  printf(p);&lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Find last occurrence of character in string: how to use strrchr==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;string.h&amp;gt;&lt;br /&gt;
int main ()&lt;br /&gt;
{&lt;br /&gt;
  char str[] = &amp;quot;This is a line&amp;quot;;&lt;br /&gt;
  char *p;&lt;br /&gt;
  &lt;br /&gt;
  p = strrchr(str, &amp;quot;i&amp;quot;);&lt;br /&gt;
  printf (&amp;quot;Last occurence of &amp;quot;i&amp;quot; is %d \n&amp;quot;, p - str + 1);&lt;br /&gt;
  &lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Find substring==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;string.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
int main(void)&lt;br /&gt;
{&lt;br /&gt;
  char *p;&lt;br /&gt;
  p = strstr(&amp;quot;this is a test&amp;quot;, &amp;quot;is&amp;quot;);&lt;br /&gt;
  printf(p);&lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Find substring: how to use strstr==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;string.h&amp;gt;&lt;br /&gt;
int main ()&lt;br /&gt;
{&lt;br /&gt;
  char str[] =&amp;quot;This is a line&amp;quot;;&lt;br /&gt;
  char *p;&lt;br /&gt;
  &lt;br /&gt;
  p = strstr (str, &amp;quot;is&amp;quot;);&lt;br /&gt;
  strncpy (p, &amp;quot;sample&amp;quot;,5 );&lt;br /&gt;
  puts (str);&lt;br /&gt;
  &lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Find sub string: our own function==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
int find_substr(char *listPointer, char *itemPointer);&lt;br /&gt;
int main(void)&lt;br /&gt;
{&lt;br /&gt;
  if(find_substr(&amp;quot;C is fun&amp;quot;, &amp;quot;is&amp;quot;) != -1)&lt;br /&gt;
    printf(&amp;quot;Substring is found.&amp;quot;);&lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
/* Return index of first match of itemPointer in listPointer. */&lt;br /&gt;
int find_substr(char *listPointer, char *itemPointer)&lt;br /&gt;
{&lt;br /&gt;
  int t;&lt;br /&gt;
  char *p, *p2;&lt;br /&gt;
  for(t=0; listPointer[t]; t++) {&lt;br /&gt;
    p = &amp;amp;listPointer[t];&lt;br /&gt;
    p2 = itemPointer;&lt;br /&gt;
    while(*p2 &amp;amp;&amp;amp; *p2==*p) {&lt;br /&gt;
      p++;&lt;br /&gt;
      p2++;&lt;br /&gt;
    }&lt;br /&gt;
    if(!*p2) return t; /* 1st return */&lt;br /&gt;
  }&lt;br /&gt;
   return -1; /* 2nd return */&lt;br /&gt;
}&lt;br /&gt;
  &lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Look up names in a hardcoded list==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
#define STRING_LENGTH 80&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;string.h&amp;gt;&lt;br /&gt;
int lookup(char const *const name); /* lookup a name */&lt;br /&gt;
int main()&lt;br /&gt;
{&lt;br /&gt;
    char name[STRING_LENGTH] = &amp;quot;Jim&amp;quot;;&lt;br /&gt;
    name[strlen(name)] = &amp;quot;\0&amp;quot;;&lt;br /&gt;
    if (lookup(name)){&lt;br /&gt;
        printf(&amp;quot;%s is in the list\n&amp;quot;, name);&lt;br /&gt;
    }else{&lt;br /&gt;
        printf(&amp;quot;%s is not in the list\n&amp;quot;, name);&lt;br /&gt;
    }&lt;br /&gt;
    return (0);&lt;br /&gt;
}&lt;br /&gt;
int lookup(char const *const name)&lt;br /&gt;
{&lt;br /&gt;
    static char *list[] = {&amp;quot;John&amp;quot;,&amp;quot;Jim&amp;quot;,&amp;quot;Jane&amp;quot;,&amp;quot;Clyde&amp;quot;,NULL};&lt;br /&gt;
    int index;&lt;br /&gt;
    for (index = 0; list[index] != NULL; ++index) {&lt;br /&gt;
        if (strcmp(list[index], name) == 0)&lt;br /&gt;
            return (1);&lt;br /&gt;
    }&lt;br /&gt;
    return (0);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Scan string for specified characters==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;string.h&amp;gt;&lt;br /&gt;
int main(void)&lt;br /&gt;
{&lt;br /&gt;
  char *p;&lt;br /&gt;
  p = strpbrk(&amp;quot;this is a test&amp;quot;, &amp;quot; absj&amp;quot;);&lt;br /&gt;
  printf(p);&lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Scan string for specified characters: how to use strpbrk==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;string.h&amp;gt;&lt;br /&gt;
int main ()&lt;br /&gt;
{&lt;br /&gt;
  char str[] = &amp;quot;This is a line&amp;quot;;&lt;br /&gt;
  char key[] = &amp;quot;aeiou&amp;quot;;&lt;br /&gt;
  char *p;&lt;br /&gt;
  printf (&amp;quot;Vowels in &amp;quot;%s&amp;quot;: &amp;quot;,str);&lt;br /&gt;
  p = strpbrk (str, key);&lt;br /&gt;
  while (p != NULL) {&lt;br /&gt;
  &lt;br /&gt;
    printf (&amp;quot;%c &amp;quot; , *p);&lt;br /&gt;
    p = strpbrk (p + 1, key);&lt;br /&gt;
  &lt;br /&gt;
  }&lt;br /&gt;
  printf (&amp;quot;\n&amp;quot;);&lt;br /&gt;
  &lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Search a char inside a string==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;string.h&amp;gt;&lt;br /&gt;
int main(void)&lt;br /&gt;
{&lt;br /&gt;
  char *p;&lt;br /&gt;
  p = strchr(&amp;quot;this is a test&amp;quot;, &amp;quot; &amp;quot;);&lt;br /&gt;
  printf(p);&lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Search string==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;string.h&amp;gt;&lt;br /&gt;
int search(char *p[], char *name);&lt;br /&gt;
char *names[] = {&amp;quot;John&amp;quot;,&amp;quot;Jim&amp;quot;,&amp;quot;Jane&amp;quot;,&amp;quot;James&amp;quot;,NULL};&lt;br /&gt;
int main(void)&lt;br /&gt;
{&lt;br /&gt;
  if(search(names, &amp;quot;James&amp;quot;) != -1)&lt;br /&gt;
    printf(&amp;quot;in list.\n&amp;quot;);&lt;br /&gt;
  if(search(names, &amp;quot;Bill&amp;quot;) == -1)&lt;br /&gt;
    printf(&amp;quot;not found.\n&amp;quot;);&lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
int search(char *p[], char *name)&lt;br /&gt;
{&lt;br /&gt;
  int t;&lt;br /&gt;
  for(t=0; p[t]; ++t){&lt;br /&gt;
    if(!strcmp(p[t], name)) {&lt;br /&gt;
       return t;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
    return -1; /* not found */&lt;br /&gt;
}&lt;br /&gt;
  &lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Search string for occurrence of character set==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;string.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
int main(void)&lt;br /&gt;
{&lt;br /&gt;
  int len;&lt;br /&gt;
  len = strcspn(&amp;quot;this is a test&amp;quot;, &amp;quot;ab&amp;quot;);&lt;br /&gt;
  printf(&amp;quot;%d&amp;quot;, len);&lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Search string for occurrence of character set: how to use strcspn==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;string.h&amp;gt;&lt;br /&gt;
int main ()&lt;br /&gt;
{&lt;br /&gt;
  char str1[] = &amp;quot;1245789000&amp;quot;;&lt;br /&gt;
  char str2[] = &amp;quot;1234567890&amp;quot;;&lt;br /&gt;
  int i;&lt;br /&gt;
  i = strcspn (str1,str2);&lt;br /&gt;
  printf (&amp;quot;The first number in str1 is str1[%d]\n&amp;quot;, i);&lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>