21

たとえば、有効なURLを検証するには、次のようにします。

char usUrl[MAX] = "http://www.stackoverflow"

if(usUrl[0] == 'h'
   && usUrl[1] == 't'
   && usUrl[2] == 't'
   && usUrl[3] == 'p'
   && usUrl[4] == ':'
   && usUrl[5] == '/'
   && usUrl[6] == '/') { // what should be in this something?
    printf("The Url starts with http:// \n");
}

または、を使用することを考えましstrcmp(str, str2) == 0たが、これは非常に複雑である必要があります。

そのようなことをする標準のC関数はありますか?

4

5 に答える 5

63
bool StartsWith(const char *a, const char *b)
{
   if(strncmp(a, b, strlen(b)) == 0) return 1;
   return 0;
}

...

if(StartsWith("http://stackoverflow.com", "http://")) { 
   // do something
}else {
  // do something else
}

また、必要である#include<stdbool.h>か、単にbool置き換えるint

于 2013-03-20T04:21:20.177 に答える
9

私はこれを提案します:

char *checker = NULL;

checker = strstr(usUrl, "http://");
if(checker == usUrl)
{
    //you found the match

}

これは、文字列がで始まる場合にのみ一致し'http://'、次のようなものではありません'XXXhttp://'

プラットフォームで利用できる場合は、それを使用することもできstrcasestrます。

于 2013-03-20T04:20:40.840 に答える
-1

strstr(str1, "http://www.stackoverflow")この目的で使用できるもう1つの関数です。

于 2013-03-20T04:12:21.897 に答える