一个错误,大家帮我看看,怎么修改?谢谢了

lixianxiang 2006-04-05 05:13:45
以下程序实现的功能是:输入一条SQL语句,将所有单词显示出来。
出现的错误是:
24: Lvallue required in function main
怎么修改这个错误,谢谢大家指点!

#include<stdio.h>
#include<ctype.h>
main()
{

char sql[100];
char str={''};
char word[50][10];
int i,j=-1;
printf("Input SQL order :\n");
for(i=0;i<100;i++)
{
scanf("%c",sql[i]);
if (sql[i]==';');
break;
}
for(i=0;i<strlen(sql);i++)
{
if (isalpha(sql[i])) //如果是字母
strcat(str,sql[i]);
if (i!=0 && !isalpha(sql[i]) && isalpha(sql[i-1]))
{
j++;
/*24*/ word[j]=str;
str='';
}
}
for(i=0;i<=j;i++)
printf("\n%s\n",word[i]);
}
...全文
157 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
adintr 2006-04-05
  • 打赏
  • 举报
回复
#include <stdio.h>
#include <ctype.h>
#include <string.h>
int main()
{
char sql[100] = { 0 };
char str[100] = { 0 };
char word[50][10];
int i,j=-1;
printf("Input SQL order :\n");
for(i=0;i<100;i++)
{
scanf("%c",&sql[i]); /* 加 & */
if (sql[i]==';') /* 不要加 ; */
break;
}
for(i=0;i<strlen(sql);i++)
{
if (isalpha(sql[i])) //如果是字母
/*strcat(str,sql[i]);*/
str[strlen(str)] = sql[i];

if (i!=0 && !isalpha(sql[i]) && isalpha(sql[i-1]))
{
j++;
/*24 word[j]=str;*/
strcpy(word[j], str);
/*str='';*/
memset(str, 0, 100);
}
}
for(i=0;i<=j;i++)
printf("\n%s\n",word[i]);
}
lixianxiang 2006-04-05
  • 打赏
  • 举报
回复
谢谢adintr(www.adintr.com)的帮助!
adintr 2006-04-05
  • 打赏
  • 举报
回复
不行的,char str[]={''}; 之后 str 的长度就固定了,后面 strcat(str,sql[i]); 也会出错的;
word[j]=str; 是不行的, 要 strcpy(word[j], str)
str='' 这种用法也不对
duduhaha 2006-04-05
  • 打赏
  • 举报
回复
....楼上的一说,没信心看了

真的,楼主把能犯的错误几乎都犯了.呵呵.
duduhaha 2006-04-05
  • 打赏
  • 举报
回复
先吃饭去啦.一会再来看.
strtok,strcpy用好了就行了.
jinjiajie 2006-04-05
  • 打赏
  • 举报
回复
....楼上的一说,没信心看了
lixianxiang 2006-04-05
  • 打赏
  • 举报
回复
下面的错误,怎么还是一样?什么原因?
#include<stdio.h>
#include<ctype.h>
main()
{
char sql[100];
char str[]={''};
char word[50][10];
int i,j=-1;
printf("Input SQL order :\n");
for(i=0;i<100;i++)
{
scanf("%c",sql[i]);
if (sql[i]==';');
break;
}
for(i=0;i<strlen(sql);i++)
{
if (isalpha(sql[i])) //如果是字母
strcat(str,sql[i]);
if (i!=0 && !isalpha(sql[i]) && isalpha(sql[i-1]))
{
j++;
/*24*/ word[j]=str;
str='';
}
}
for(i=0;i<=j;i++)
printf("\n%s\n",word[i]);
}
duduhaha 2006-04-05
  • 打赏
  • 举报
回复
错误百出啊,改你这个程序比重写一个都难,呵呵.
adintr 2006-04-05
  • 打赏
  • 举报
回复
char str={''};
是什么用法?没见过,而且后面还要 strcat(str,sql[i]); 不错才奇怪

70,037

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧