【发布时间】:2012-09-09 08:23:08
【问题描述】:
这是我的示例代码:
#include<stdio.h>
#include<string.h>
#include<ctype.h>
void convert(char *a, char *b) {
int i;
for(i=0; i<strlen(a); i++) {
b[i]=tolower(a[i]);
}
}
int main() {
char a[20], b[20];
fgets(a, sizeof(a), stdin);
convert(a, b);
printf("%s\n", b);
return 0;
}
但有时 convert() 函数也会比 strlen(a) 多转换一个字符(它是一个随机字符),例如这是一个输出:
ASDSA
asdsa
%
我该如何解决?
【问题讨论】:
-
不是每次都处理多余的字符吗?
-
你没有终止输出字符串。
-
试试
char a[20], b[20] = { 0 }