为什么添加到 ascii 会增加额外的字符?
Why does adding to ascii adds up extra characters?
所以,我尝试用 C 编写一个程序,将大写字符转换为小写,只需将大写字符加上 32。
#include <stdio.h>
int main()
{
char user_inp[16];
char final_res[16];
int ascii;
printf("%s", "Enter any string : ");
scanf("%s", &user_inp);
for (int i = 0; user_inp[i] != 0; i++){
ascii = (int) user_inp[i];
if (ascii < 91&& ascii > 64){
ascii = ascii + 32;
}
final_res[i] = ascii;
}
printf("%s\n", final_res);
return 0;
}
但是当我 运行 它时,我得到了一些额外的乱码结果。
For example,
Input : Apple
Output : apple
But,
Input : Encyclopedia
Output : encyclopedia�U
我遇到了什么问题?我该如何解决这个问题?
C 字符串需要以 null 结尾。 user_inp
是。但是 final_res
不是。
所以,我尝试用 C 编写一个程序,将大写字符转换为小写,只需将大写字符加上 32。
#include <stdio.h>
int main()
{
char user_inp[16];
char final_res[16];
int ascii;
printf("%s", "Enter any string : ");
scanf("%s", &user_inp);
for (int i = 0; user_inp[i] != 0; i++){
ascii = (int) user_inp[i];
if (ascii < 91&& ascii > 64){
ascii = ascii + 32;
}
final_res[i] = ascii;
}
printf("%s\n", final_res);
return 0;
}
但是当我 运行 它时,我得到了一些额外的乱码结果。
For example,
Input : Apple
Output : apple
But,
Input : Encyclopedia
Output : encyclopedia�U
我遇到了什么问题?我该如何解决这个问题?
C 字符串需要以 null 结尾。 user_inp
是。但是 final_res
不是。