题目是将字符数组a中的字符串复制到字符数组b,只复制字符串的英文字母,并将小写字母变成大写字母

如题所述

第1个回答  推荐于2017-07-25
#include<stdio.h>
void main(){
char a[20];
int i = 0;
printf("请输入小写字母:\n");
scanf("%s",&a);
char b[20] = {0};
for(;a[i]!='\0';i++){
if(a[i]>='a' && a[i] <= 'z'){
a[i] -= 32;
b[i] = a[i];
}
}
printf("输出的字符串:%s\n",b);
}
代码给你改好了,你在使用的时候必须先将b数组清空追问

输入1a后,没有输出啊

追答

你在if后面加一个else,里面只有一句:b[i] = a[i];

追问

不对,加了之后输入1a,输出1A,但题目的要求是输入1a后,只输出A,

追答

#include
#include
void main(){
char a[20];
int i,count=0,str_length = strlen(a);
printf("请输入字符串:\n");
scanf("%s",&a);
char b[20] = {0};
for(i=0;i= 65 && a[i] = 97 && a[i] <= 122) )
{
b[count] = (a[i]-32);
count++;
}
}
printf("输出的字符串:%s\n",b);
}
代码给你大改了一下,你看一下是不是达到你的要求了

追问

可以运行,能不能留个联系方式,以后有问题多多请教啊

追答

QQ2426826484

本回答被网友采纳
第2个回答  2016-08-03

for循环结束后加个试试:

b[i] = '\0';

相似回答