Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/67.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 - Fatal编程技术网

C 如何解析数组的一个索引中的字符串?

C 如何解析数组的一个索引中的字符串?,c,C,我正在用C编写一个程序,它在命令行上接收来自用户的两个字符串作为输入。我知道当你使用 int main(int argc, char *argv[]) 它创建一个指向数组的指针,该数组将参数存储为argv[1]和argv[2]。假设用户在命令行上输入hello,我想访问hello中的单个字符,如果argv[1]给我的是整个字符串而不是单个字符,我怎么做?TL;DR-如有疑问,请检查数据类型 argv的类型是char*[],它会衰减为char**。因此,argv[n]是char*类型 您可以索引

我正在用C编写一个程序,它在命令行上接收来自用户的两个字符串作为输入。我知道当你使用

int main(int argc, char *argv[])
它创建一个指向数组的指针,该数组将参数存储为argv[1]和argv[2]。假设用户在命令行上输入hello,我想访问hello中的单个字符,如果argv[1]给我的是整个字符串而不是单个字符,我怎么做?

TL;DR-如有疑问,请检查数据类型

argv的类型是char*[],它会衰减为char**。因此,argv[n]是char*类型

您可以索引到argv[n],如argv[n][m]以获取char元素。

您可以将char*argv[]处理为字符串数组

因为char*是指向char数组的指针,所以可以将其视为字符串


所以argv[0],argv[1]。。。。是char*数据类型,argv[0][0]是char数据类型。

argv[x]对于任何有效的x都是字符串。您可以像访问任何其他字符串一样访问该字符串的各个元素。您以前遇到过数组数组吗?将argv视为数组的数组。@SaniJr:argv这里是一个二维数组。因此,在您的示例中,argv[1][0]是“h”,argv[1][1]是“e”,依此类推。因此,您可以运行一个长度为argv[1]的for循环,并使用argv[1][i]获取每个条目。@Deepak非常感谢,这正是我所寻找的。没有将其视为二维数组。argv不是二维数组。argv是一个指针,一个指向char*的指针。对不起,它不是2D数组。它是指向指针的指针。其中每行可以包含字符串,字符串可以有自己的字符大小。它将没有固定的尺寸。