else str[i]=str[i]-32; } printf("字符串为:%s\n",
gets(a); /*将用户的输入存进字符数组*/ for(i=strlen(a)-1;i>=0;i--) /*从数组的最后位置开始输出字符*/ printf("%c",a[i]); /*以字符的格式依次显示每个字符*/ printf("\n");return 0;} 程序运行截图如下:
scanf_s函数改为scanf_s("%[^\n]", a, 80);
数组下标是从0开始的,下标len 指向字符串尾的 结束符0,最后一个字符下标应该是 len-1
为什么指针输出字符串..这里提问感觉效率不高啊,建议你可以直接去一些C语言的答疑君羊去问,里面应该挺多大神可以回答问题。推荐你一个我平常用的吧,很多问题都是在里面解决的
include <stdio.h> //提供求串长函数strlen()include <string.h> //最后一个元素下标 int end;void turn(char *h,int p){ //到末尾时开始输出 if (p == end) printf("%c",h[p]);else { //没到末尾则先输出下一位 turn(h,p+1);//然后输出当前位 printf("%c",h[p]);} }...
可能两个原因:1. 输入数组不够长,但你要求打印的字符位置超出字符串长度。2. 数组下标从0开始,你输入i是1的话,你的打印其实第二个字符。
当然可以啦,放在子函数里也是可以输出的。
把while(scanf("%s",&s) != 0 )中的scanf("%s",&s)改成gets(s)试试!scanf("%s",&s)这个函数是不认空格的,一旦有空格它就认为输入结束了,把空格后的字符当另一次输入,所以最后只剩下最后输入一个字符串……