C语言如何取指针数组中的某个元素的字符?

char *str[5]={

"Austria",

"United States",

"United Kingdom",

"Switzerland",

"Canada"

};

char *(*ssha)[5]=&str;

我想用数组指针char *(*ssha)[5]=&str 取指针数组str的第1个元素即“United States”中的“S"这个字符并且把它打印出来该如何操作

第1个回答  2019-05-25
#include<>
int main()
{
    char *str[5]=
    {

        "Austria",

        "United States",

        "United Kingdom",

        "Switzerland",

        "Canada"

    };
    char **ssha=&str[3];
    printf("%c",(*ssha)[0]);//实际上就是str[3][0]
    //--------或者--------
    //char **ssha=str;
    //printf("%c",*(*(ssha+3)+0));
    return 0;
}

追问

“United States”我想取这个字符串中的"S"字符,我尝试修改代码为
char **ssha=&str[1];
printf("%c",*ssha[8]); 但不能执行 最好不用循环能否执行

追答

问题在于运算符优先级,你得这么写(*ssha)[7] //S的下标是7,你算错了
或者
----------------
char **ssha=str;
printf("%c",*(*(ssha+1)+7));
----------------
最简单的就是直接str[1][7]

本回答被提问者采纳
第2个回答  2019-07-15
一维数组
#include<stdio.h>
main()
{
char *p,s[]="straswasss";
p=s;
printf("%c\n%c\n",*(p+2),*(p+5));
puts(s);
}
一维数组
#include<stdio.h>
main()
{
char *p="straswasss";
printf("%c\n%c\n",*(p+2),*(p+5));
puts(p);
}
A(即B的地址)是指向指针的指针,称为二级指针,用于存放二级指针的变量称为二级指针变量.根据B的不同情况,二级指针又分为指向指针变量的指针和指向数组的指针。
二维数组
#include<stdio.h>
int main()
{
int i;
char s[2][8]={"stra","swasss"},*p,*q;
for(p=s[0];*p;p++)//p指向s[0],p是一级指针
printf("%c ",*p);
for(i=0;i<2;i++)
printf("\n%s",s+i);//s是二级指针
printf("\n");
puts(s[0]);
puts(s[1]);
return 0;
}

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网