字符串联想匹配里的问题
#include "stdio.h " #include "string.h "
void main()
{
char *str= "chengdu chongqing beijing ",*tem= "ch ";
char *output,out[100];
output=out;
char *s1,*t1;
int i=0;
t1=tem;s1=str;
printf( "%s\n ",s1);
while(*str)
{
tem=t1;
while(*tem)
{
if(*str==*tem)
{
printf( "%s\n ",str);
//printf( "%s\n ",tem);
str++;tem++;
//printf( "%s\n ",str);
printf( "%s\n ",tem);
else if(*str!=*tem)
{
break;
}
}
if(*tem==NULL)
{
while (*s1!= ' ')
{
*output=*s1;//在这里设置断点时检测到的数据对,赋予的值不对
//貌似这里造成内存错误,问题貌似在这里问下这是哪里错了
printf( "%s ",*output);
s1++;i++;
//printf( "%s ",output[i])//和上面的输出语句都不对,有内存报错
}
output[i]= ' ';
i++;
s1++;
str=s1;
}
else
while(*str!= ' '&&*str!=NULL)
{
str++;
}
}
printf( "%s ",output);
}
这是华为编程大赛的一道题,是联想匹配的,比如原字符串有 "chengdu beijing cong " 输入一个匹配字符串 "ch "
输出chengdu,关键是*output=*s1;这个语句怎么不对,换成output[100]数组后都进行断定调试赋的值都不对。大家帮帮忙呀!谢谢了!