Just nu i M3-nätverket
Gå till innehåll
Micke_Johansson

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

Rekommendera Poster

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

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

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;

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
Gäst 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.

Redigerad av GustafH

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Skapa ett nytt konto på vårt forum. Det är lätt!

Registrera ett nytt konto

Logga in

Redan medlem? Logga in här.

Logga in nu



×
×
  • Skapa nytt...