Just nu i M3-nätverket
Jump to content

Söker efter ett tecken i en sträng.


Micke_Johansson

Recommended Posts

Micke_Johansson

Undrar vad som är smidigaste sättet att hitta om ett visst tecken finns med i en sträng.

 

Jag har följande kod just nu:

int j;

char tmp;

 

for (j=0; j<strlen(name); j++)

{

tmp = name[j];

IMS_LOGE("tecken = %c",tmp);

if (tmp == ':')

{

return TRUE;

} else {

return FALSE;

}

}

 

 

Mvh

Micke

Link to comment
Share on other sites

  • 2 months later...
alsogringo

Undrar vad som är smidigaste sättet att hitta om ett visst tecken finns med i en sträng.

 

Jag har följande kod just nu:

int j;

char tmp;

 

for (j=0; j<strlen(name); j++)

{

tmp = name[j];

IMS_LOGE("tecken = %c",tmp);

if (tmp == ':')

{

return TRUE;

} else {

return FALSE;

}

}

 

 

Mvh

Micke

 

 

Det smidigaste är att sätta en pekar på början av din sträng och leta sekventiellt

 

for (char *p = name; *p; ++p) 
{
 if ( *p == ':' ) return TRUE;
}
return FALSE;

 

eftersom strängar alltid slutar med \0 så fungerar loopen ovan

men för säkerhets skull kan man ha en max storlek:

 

for (char *p = name; *p && p < name + 255; ++p) 
{
 if ( *p == ':' ) return TRUE;
}
return FALSE;

 

ett annat alternativ är att använda en C runtime funktion strchr

 

return ( strchr( name, ':' ) != NULL )  != NULL;

Link to comment
Share on other sites

  • 1 year later...
Guest GustafH

Vad sägs om detta exempel?

#include <stdio.h>
#include <string.h>

int main()
{
   char* string = "Apelsiner is very good"; // gör en string
   char* compare = "Apelsiner";
   if(strcmp(string, compare)) // if-sats for att se om "Apelsiner" finns i en string
   {
     printf("Ordet apelsiner hittades i din string!\n");
   }
}

strcmp brukar jag använda i min programmering. Notera att jag inte har testat det på Windows, utan endast på Linux.

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.



×
×
  • Create New...