A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

代码是这样int main() {
   
   
    char  *pStr;//定义字符数组接收字符串变量
   
    printf("请输入一串字符串:\n");
   
   
    scanf(“%s”,pStr);//从键盘接收一串字符串
   

    int i;
   
    for( i = 0; pStr[i]!='\0'; i++)//遍历字符串
下面是遍历字符串就不接着写了,一运行就崩溃 求教
        

5 个回复

倒序浏览
如果遇到这种情况,楼主可以创建char pStr[1000],类似的数组存放字符串,就算长度超了,一般不会出问题,除非运气差,那超出的内存被占用
回复 使用道具 举报
我是想动态输入长度的
回复 使用道具 举报
你的pStr是指针变量,遍历当然不行啊,你把char *pStr改成char pStr[100]就好了
回复 使用道具 举报
  1. #include <stdio.h>

  2. int main()
  3. {
  4.    
  5.     char  *pStr;//定义字符数组接收字符串变量
  6.    
  7.     printf("请输入一串字符串:\n");
  8.    
  9.    
  10.     scanf("%s",pStr);//从键盘接收一串字符串
  11.    
  12.    
  13.    
  14.    
  15.     for( int i = 0; pStr[i]!='\0'; i++)
  16.     {
  17.         printf("%c",pStr[i]);
  18.         if (pStr[i+1]=='\0') {
  19.             printf("\n");
  20.         }
  21.     }
  22.    

  23. }
复制代码
没有问题,用英文输入法修改错误的符号以后正常运行
回复 使用道具 举报
肯定出错啊,因为你只是定义了一个地址*pStar 输入的字符已经被*pStar所指。但是你在循环的时候*pStar就会一个一个向后指,但是结束的时候呢,没有"/n" 所以是不会停下来滴
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马