无论情况如何,我如何比较角色。如果我的if条件对Z和z都返回true,则意味着我输入Z,字符可以是A-Z或a-z中的任何字母。
像ABCbabcAABC一样
如果我输入B然后我必须得到4作为输出,因为字符串中有4个B.
我正在使用Turbo C ++学习C ++。我想做但现在没有出路。
void main()
{
clrscr();
char str[50],ch;
char str1[50];
int i = 0, l;
cout << "Enter strings: ";
gets(str);
cout << "Enter charcter: ";
cin >> ch;
l = strlen(str);
for(i = 0; i <= l; i++)
{
cout << isupper(str[i]) ? tolower(str[i]) : toupper(str[i]);
}
puts(str);
getch();
}
答案 0 :(得分:0)
if (tolower(str[i]) == tolower(ch)) {
cout << (isupper(str[i]) ? tolower(str[i]) : toupper(str[i]));
} else {
cout << str[i];
}
40000是isupper输出。对于upcase char,非零,对于小写,则为零,如manual
中所述答案 1 :(得分:0)
void main()
{
clrscr();
char str[50],ch;
char str1[50];
int i=0,l;
cout<<"Enter strings: ";
gets(str);
cout<<"Enter charcter: ";
cin>>ch;
l=strlen(str);
int result=0;
for(i=0;i<l;i++)
{
if(tolower(ch)== tolower(str[i]))
{
result++;
}
}
puts(str);
puts(result);
getch();
}
答案 2 :(得分:0)
您需要做的就是使用ASCII值。
查看代码:这解释了您只需转换那些ASCII值介于65(A)到90(Z)之间的字符。
公共课Ques2 {
/**
* @param args the command line arguments
*/
public static void main(String[] args) throws IOException {
//ascii A=65 Z=90 a=97
System.out.println("Enter UPPERCASE");
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
// String input = br.readLine().toLowerCase();
char c;
char[] word=br.readLine().toCharArray();
for(int i :word)
{
if(i>=65 && i<=90){
i=i+32 ;
c=(char) i;
System.out.println(c);
}
else{
c=(char)i;
System.out.println(c);
}
}
}
}