回 帖 发 新 帖 刷新版面

主题:[讨论]这个问题很奇怪,一直没有找出问题,二维

这个程序输入asd,dsf,gfd,rg,fgs这样的数据,然后将他们以“,”或者“\n”分开,保存在一个二维数组中,然后在循环外边输出那些数据,但不知道为什么,保存在数组str2中的数据,在出循环后就完全改变了,忙各位大虾指点,谢谢
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int
main(int argc,char **argv)
{
   int count=1,count1=0,length,length1;
   int i=0;
   char str[100];
   char str1[100];
   static char *str2[100];
   char *p,*p1,*p2,*p3,*p4;
   
   printf("please input a sting of character\n");
   scanf("%s",str);
   length1=strlen(str);
   printf("%s\n",str);
   p1=str1;
   for(i=0;i<length1+1;i++)
   {
      if(str[i]=='\0'||str[i] ==',')
      {
        
         int  j=0;
        static int k=0;      
         *p1='\0';
        
         printf("======================\n");
         printf("%s\n",str1);
         str2[k]=str1;
         printf("str2[%d]=%s\n",k,str2[k]);
         p1=str1;
         k++;
         count++;
      }
      else
      {
        *p1=str[i];
        printf("%c",*p1);
        printf("+++++++++++++++++++++\n");
        p1++;
        count1++;
      }
      
   }
  for(i=0;i<count;i++)
     printf("str2[%d]=%s\n",i,str2[i]);
  
   return 0;
}

回复列表 (共3个回复)

沙发

说实话,你很好学。但是学C语言没几天,对吗?类型还没弄明白怎么回事吧。
比较忙,不意思。没时间给你细说。自个仔细看看书,把指针、字符、字符串、数组、数组和指针、常量字符串和指针好好区分一下。然后把下面几个问题回答一下。
p1=str1;表示什么意思?
*p1='\0';这一句是什么意思,会导致什么后果?
str2[k]=str1;这又是什么意思。
p1=str1;还有这一句。
*p1=str[i];还有这一句。

板凳

说实话,这是一道面试题目中的一部分。不过很高兴,你给我指出了其中的问题,主要还是自己把那块知识没有吃透,谢谢

3 楼

您還是好好學學再面試吧,如果這樣能面試成功,那真是絕對夠運買彩票了~~~~~

我来回复

您尚未登录,请登录后再回复。点此登录或注册