0

无论大小写如何,我如何比较字符。意思是假设如果我的 if 条件对 Z 和 z 都返回 true,我输入 Z,字符可以是 AZ 或 az 中的任何字母。
就像 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();
}
4

3 回答 3

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();
}
于 2013-10-29T15:10:01.683 回答
0
if (tolower(str[i]) == tolower(ch)) {
    cout << (isupper(str[i]) ? tolower(str[i]) : toupper(str[i])); 
} else {
    cout << str[i];
}

40000 是上输出。大写字符非零,小写字符为零,如手册中所述

于 2013-10-29T15:01:24.157 回答
0

您需要做的就是使用 ASCII 值。

查看代码:它说明您只需要转换 ASCII 值介于 65(A) 到 90(Z) 之间的字符。

公共类问题2 {

/**
 * @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);
       }
   }

}

}

于 2014-01-10T15:19:31.233 回答