Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 字符串的长度,最大为特定字符_C_String - Fatal编程技术网

C 字符串的长度,最大为特定字符

C 字符串的长度,最大为特定字符,c,string,C,String,我想搜索一个IP地址,直到“/”,然后取“/”之前的所有内容,这样我就可以将它从一个字符转换成一个整数。然后取那个整数并将它转换成二进制。如何读取“/”之前的所有内容,将其存储在变量中,然后继续将其转换为二进制。我知道斯特伦,但我不认为这对我的情况有用吗?最长为“/”的长度不是常数 我的代码: int main(int argc, char** argv) { char *s; char buf[] = "10.29.246.49/32"; s = str

我想搜索一个IP地址,直到“/”,然后取“/”之前的所有内容,这样我就可以将它从一个字符转换成一个整数。然后取那个整数并将它转换成二进制。如何读取“/”之前的所有内容,将其存储在变量中,然后继续将其转换为二进制。我知道斯特伦,但我不认为这对我的情况有用吗?最长为“/”的长度不是常数

我的代码:

 int main(int argc, char** argv)
 {
      char *s;
      char buf[] = "10.29.246.49/32";
      s = strchr(buf, '/');
      if (s != NULL)
           printf("found '/' at %s\n", s);
      return 0;
 }

您可以使用
strtok

#include <stdio.h>
#include <string.h>
int main(int argc, char** argv)
{
      char *s;
      char buf[] = "10.29.246.49/32";
      s = strtok(buf, "/");
      if (s)
           printf("%s\n", s);
      return 0;
}

字符
'/'
替换为
'\0'
。现在您可以在字符串上使用
strlen

在您的情况下,可以通过指针算术
s-buf
获得长度。在这种情况下,如何使用字符进行指针算术?
10.29.246.49