黑马程序员技术交流社区
标题:
用C语言动态输入一个数组要怎么弄
[打印本页]
作者:
greatboygirl
时间:
2015-5-5 21:37
标题:
用C语言动态输入一个数组要怎么弄
代码是这样int main() {
char *pStr;//定义字符数组接收字符串变量
printf("请输入一串字符串:\n");
scanf(“%s”,pStr);//从键盘接收一串字符串
int i;
for( i = 0; pStr[i]!='\0'; i++)//遍历字符串
下面是遍历字符串就不接着写了,一运行就崩溃 求教
作者:
mony
时间:
2015-5-5 21:58
如果遇到这种情况,楼主可以创建char pStr[1000],类似的数组存放字符串,就算长度超了,一般不会出问题,除非运气差,那超出的内存被占用
作者:
greatboygirl
时间:
2015-5-6 13:09
我是想动态输入长度的
作者:
陈凡1993
时间:
2015-5-7 00:32
你的pStr是指针变量,遍历当然不行啊,你把char *pStr改成char pStr[100]就好了
作者:
ydy96315
时间:
2015-5-7 07:41
#include <stdio.h>
int main()
{
char *pStr;//定义字符数组接收字符串变量
printf("请输入一串字符串:\n");
scanf("%s",pStr);//从键盘接收一串字符串
for( int i = 0; pStr[i]!='\0'; i++)
{
printf("%c",pStr[i]);
if (pStr[i+1]=='\0') {
printf("\n");
}
}
}
复制代码
没有问题,用英文输入法修改错误的符号以后正常运行
作者:
空白_o6H66
时间:
2015-5-7 10:32
肯定出错啊,因为你只是定义了一个地址*pStar 输入的字符已经被*pStar所指。但是你在循环的时候*pStar就会一个一个向后指,但是结束的时候呢,没有"/n" 所以是不会停下来滴
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2