【指针】输入序号,输出对应的单词(释疑)
2010-03-23 13:24
274 查看
/* #include<stdio.h>//要求:用户输入1、2、3、4中的任一个数,就要输出对应的单词 void main() { char *p; int x; char a[4][7]={"first","second","third","four"}; p=a[0];//为什么用p=a出错。 printf("please input a number(such as 1 2 3 4):/n"); scanf("%d",&x); printf("%s/n",*(a+x-1));//这里用*(a+x-1)就能输出对应结果,并且用(a+x-1)也能得出对应结果,为什么用*(p+x-1)就得不出对应的结果。怎么用到p. }*/ #include<stdio.h>//要求:用户输入1、2、3、4中的任一个数,就要输出对应的单词 void main() { char *p; int x; char a[4][7]={"first","second","third","four"}; p=a[0];//为什么用p=a出错? //答:a是一个指向二维数组的指针,a[0]是一维数组,给p赋值只能用后者 printf("please input a number(such as 1 2 3 4):/n"); scanf("%d",&x); // printf("%c/n",*(p+x-1));//注意到是%c,因为*p只代表一个字符 printf("%s/n",a+x-1);//可以 // printf("%s/n",*(a+x-1));//也可以 //这里用*(a+x-1)就能输出对应结果,并且用(a+x-1)也能得出对应结果,为什么 //答:printf("%s/n",*(a+x-1));里,%s对应的可以是字符串本身*(a+x-1),也可以是其首地址a+x-1 //为什么用*(p+x-1)就得不出对应的结果。 //答:*(p+x-1)只代表一个字符,如果你想用p输出想要的结果,比如"second"字符串,可以用循环的办法依次输出各个字符 //怎么用到p. //答:想输出第几个,就用p指向它,比如上面的p=a[0];,你设置一个变量k,让p=a[k]就可以了, //但此时*p只是单个字符,不是字符串,用上面的办法挨个输出,直到输出你需要的字符串 }
相关文章推荐
- 指针_习题:运用指针设计一个函数_输入一个整数,输出其对应的16进制数
- 算法:输入一个十进制数,根据输入的数输出所对应的英文星期单词,若输入的数小于1或大于7,则输出ERROR。
- 提示用户分别输入10个学生的成绩(百分制), 最后输出各个学员序号对应的成绩。
- 转: 提示用户分别输入10个学生的成绩(百分制), 最后输出各个学员序号对应的成绩。
- 编程题:输入英文月份单词,输出对应月的数字形式。
- *一个二级指针的练习(输入一个数,输出对应的月份)
- 输入一个月份,输出对应月份的单词
- 输入一个字符常量,输出此字符常量对应的整数值。
- 习题 7.10 写一个函数,输入一行字符,将此字符串中最长的单词输出。
- 第十三周-输入一个整数,要求输出对应的二进制形式。
- 面试题之输入一个数代表多少字节,输出其对应的GBytes/Mbytes/Kbytes/Bytes
- 编写一函数 用户输入字符串 函数将获取第一个单词输出 并丢掉后面的字符(图)
- zoj 2588 Burning Bridges【无向图求桥 并输出桥对应边的序号】
- 输入行数(奇数),输出对应菱形
- 实验10指针2(1)输入一个字符串和一个正整数x,将该字符串中的后x个字符复制到另一个字符串y中,输出字符串y;再对y串的内容前后倒置后存入数组z中并输出。
- /* 用指向指针的指针的方法对n个整数排序并输出 。要求将排序单独写成一个函数。n个整数在主函数中输入,最后在主函数中输出*/
- 实验6-1 输入n个整数,将它们存入数组a中。输出最大值和它所对应的下标
- 输入一个整数,如果该整数介于1到12之间,则输出对应的月份,比如输入为1,则输出”April“;否则输出”not valid month number
- Java 文件统计:编写程序,统计英文文本文件中的字符数目和单词数目。程序运行时,输入要统计的文件的名称,程序处理后输出字符数目和单词数目
- 输入一个整数,如果该整数介于1到12之间,则输出对应的月份,比如输入为4,则输出”April“ -_-!;否则输出”not valid month number“