注册 登录
编程论坛 C++教室

帮忙看一下程序错在哪里哦?

fyz520 发布于 2010-01-29 18:15, 369 次点击
这是一个将字符串中小写字母变成大写字母的程序哦,不知道错在哪里?我用的是VC2008,书是讲VC6.0的,对了几遍了觉得和书上写的一样,可是执行的时候却错了

源程序如下:

#include <stdio.h>
void main()
{
    char s1[20],s2[20];
    short i=0;
    printf("输入字符串:");
    scanf("%s",s1);
    do {
        s2[i] = (s1[i] >='a' && s1[i] <= 'z') ? s1[i] - 'a' +'A' : s1[i]);
    }while(s1[i++]!='\0');
    printf("s1=%s\n,s2=%s\n",s1,s2);
}



错误提示:

1>------ 已启动生成: 项目: lianxi, 配置: Debug Win32 ------
1>正在编译...
1>practice.cpp
1>d:\c++资料\c++源文件\lianxi\lianxi\practice.cpp(7) : warning C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>        c:\program files\microsoft visual studio 9.0\vc\include\stdio.h(306) : 参见“scanf”的声明
1>d:\c++资料\c++源文件\lianxi\lianxi\practice.cpp(9) : error C2059: 语法错误 : “)”
1>生成日志保存在“file://d:\C++资料\C++源文件\lianxi\lianxi\Debug\BuildLog.htm”
1>lianxi - 1 个错误,1 个警告
========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========
2 回复
#2
cnfarer2010-01-29 21:53
s2[i] = (s1[i] >='a' && s1[i] <= 'z') ? s1[i] - 'a' +'A' : s1[i]); //多了一括号
#3
fyz5202010-01-29 22:15
天啊,我还根据错误提示特意对这句话检查了几遍呢,竟然没看出来了,,,,,不过也怪不得,初学嘛!不够熟练,不像高手一看就知道问题在哪了,谢谢了哈
1