改半天都是错的,看一下哪错了呗

img


这只能输出第一个字符串,后面是乱码,是结构出错了吗,还是输入输出错了

最外层的for循环改成里面只有p[i]=s[i]
因为你p数组只有第一个元素存放了有效数据

第一个循环的p[i]=s[i]不能把数组s的全部元素的地址传给p,少了&,s[i]只是数组第一个元素的地址

用scanf_s函数代替scanf试试

  1. scanf语句的第二个参数是一个二维数组,当输入完一个字符串时,放在p[0]中,p的其它数据都是乱码(因为没有进行初始化赋值)。
  2. 然后,执行最后的for循环,进行printf打印,当i=0时,打印p[0],正常,i++;这时,i的值为1;p[i]中没有输入数据,所以,从这之后的打印,都是乱码。