Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/69.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.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,我有一个指向字符的指针数组: char *myStrings[40]; 最后,myStrings[0]将等于“示例”或类似的内容。 我想检查第一个字符,看看它是否等于e 谢谢你的帮助 < P>数组的每个元素都是一个字符串,然后考虑我们有: char *myStrings[40] = {"Example", " 01", " - ", "Hello", ",World!\n"}; 所以 现在,我们必须通过这种方式访问*myStrings[0]的第一个元素 *(myStrings)[0]或*my

我有一个指向字符的指针数组:

char *myStrings[40];
最后,
myStrings[0]
将等于“示例”或类似的内容。 我想检查第一个字符,看看它是否等于
e


谢谢你的帮助

< P>数组的每个元素都是一个字符串,然后考虑我们有:

char *myStrings[40] = {"Example", " 01", " - ", "Hello", ",World!\n"};
所以

现在,我们必须通过这种方式访问
*myStrings[0]
的第一个元素

*(myStrings)[0]
*myStrings[0]

if (*(myStrings)[0] == 'E'){
    do something
}


<>这个数组的每个元素都是一个字符串,然后考虑我们有:

char *myStrings[40] = {"Example", " 01", " - ", "Hello", ",World!\n"};
所以

现在,我们必须通过这种方式访问
*myStrings[0]
的第一个元素

*(myStrings)[0]
*myStrings[0]

if (*(myStrings)[0] == 'E'){
    do something
}


指针是一个变量,它将指向其他对象的地址作为其值。要访问指针所在地址的值(例如,其他对象),请使用一元
“*”
解除对指针的引用

由于您有一个指针数组,因此需要取消对数组的第一个元素的引用,例如
mystrings[0]
。使用C-运算符优先级
[..]
的优先级高于
'*'
,因此您只需通过取消引用指针查看
mystrings[0]
指向的字符串的第一个字符,例如
*mystrings[0]

if (*(myStrings)[0] == 'E'){
    do something
}
一个简短的例子将有助于:

#include <stdio.h>

#define MAX 40

int main (void) {

    char *string = "example",       /* string literal */
        *arrptrs[MAX] = { NULL };   /* array of pointers */

    arrptrs[0] = string;    /* set 1st pointer to point to string */

    if (*arrptrs[0] == 'e')         /* test 1st char is 'e' */
        printf ("found : %s\n", arrptrs[0]);

    return 0;
}
示例使用/输出

$ ./bin/arrptrs
found : example
(无论您是使用
arrptrs[0]
还是
*arrptrs
访问第一个元素,输出都是相同的,它们是等效的——您知道为什么吗?)


注意:始终注意C运算符的优先级。如果您还有其他问题,请告诉我。

指针是一个变量,它将指向其他对象的地址作为其值。要访问指针所在地址的值(例如,其他对象),请使用一元
“*”
解除对指针的引用

由于您有一个指针数组,因此需要取消对数组的第一个元素的引用,例如
mystrings[0]
。使用C-运算符优先级
[..]
的优先级高于
'*'
,因此您只需通过取消引用指针查看
mystrings[0]
指向的字符串的第一个字符,例如
*mystrings[0]

if (*(myStrings)[0] == 'E'){
    do something
}
一个简短的例子将有助于:

#include <stdio.h>

#define MAX 40

int main (void) {

    char *string = "example",       /* string literal */
        *arrptrs[MAX] = { NULL };   /* array of pointers */

    arrptrs[0] = string;    /* set 1st pointer to point to string */

    if (*arrptrs[0] == 'e')         /* test 1st char is 'e' */
        printf ("found : %s\n", arrptrs[0]);

    return 0;
}
示例使用/输出

$ ./bin/arrptrs
found : example
(无论您是使用
arrptrs[0]
还是
*arrptrs
访问第一个元素,输出都是相同的,它们是等效的——您知道为什么吗?)


注意:始终注意C运算符的优先级。如果您还有其他问题,请告诉我。

如果(*myStrings)[0]='e')
您有一个指向char的指针数组(
char*[]
),而不是指向char数组的指针(
char(*)[]
)。您知道
myStrings[0]
是一个“字符串”。现在您知道如何访问字符串的任意字符了吗?如果你有
char*mySingleString
你有一个指向char的指针数组(
char*[]
),而不是指向char数组的指针(
char(*)[]
)。你知道
myStrings[0]
是一个“字符串”。现在您知道如何访问字符串的任意字符了吗?如果你有
char*mySingleString
,那么您将如何访问它的第一个字符?
*myStrings[0]=“Example”
-typo,不应该有
*
*myStrings[0]=“Example”
-typo,不应该有
*