2、如果已经被编译过了,而且没有源代码,只有用反汇编工具,加载程序进行进步跟踪,对要修改的地方进行重新定向,只是需要做大量的调试工作,而且未必能成功。
#include <stdio.h>int main ( )
{
char ch
scanf("%c",&ch)
ch=(ch>='a'&& ch<='z') ? (ch-32):ch
printf("%c\n",ch)
}
只需要修改ch=(ch>='a'&&ch<='z') ? (ch-32):ch这一行就行,这是一个三元表达式,等同于:
if (ch>='a'&&ch<='z')
ch = ch - 32
ch>='a'&&ch<='z' 这个是小写字母的取值范围,如果是小写字母,则变换成大写字母,大写字母和小写字母ASCII码正好差32,所以减32就可以变成大写字母.
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)