主题:[讨论]这个问题很奇怪,一直没有找出问题,二维
这个程序输入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;
}
#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;
}