【问题标题】:How to compare characters in a string in C language [closed]如何在C语言中比较字符串中的字符[关闭]
【发布时间】:2020-04-17 07:50:42
【问题描述】:
   char name[]="Rajas";
    char ch;
    ch=name[0];

   if(ch=="R")
   printf("Found");


   return 0;

为什么这不起作用? 我想通过比较它们的字符来将元音和辅音从字符串中分离出来。 我能够通过

用 C++ 语言做到这一点
int i=0;
char name[]="String";
string ch[20];
while(name[i]!='\0')
{
  ch[i]=name[i];
  i++;
}

【问题讨论】:

  • 你显示的代码没有意义。它与您在问题中写的没有共同之处。

标签: c string char


【解决方案1】:

为什么这不起作用?

问题出在这里:

if(ch=="R")
printf("Found");

注意"R" 是一个字符串文字。 'R' 是一个常量字符。后者是您需要的,因为您无法将字符串文字与单个字符进行比较。

代码应该是:

char name[] = "Rajas";
char ch = name[0];

if(ch == 'R') {
printf("R is found");
}

顺便可以省略char对象ch

char name[] = "Rajas";

if(name[0] == 'R') {
printf("R is found");
}

另外作为旁注:您在第二个示例中显示的代码的目的与第一个示例完全不同,因为您在第二个示例中处理 char 数组中的字符串字符,而在第一个示例,您只在char 数组的第一个元素中查找匹配字符。

【讨论】:

  • @RajasPaunikar 我很高兴能帮到你。 :-)
【解决方案2】:

"R"char[2] 类型的字符串文字 - 包含 'R''\0'。这不是你想比较的。

你需要比较char 'R':

  if(ch == 'R')
      printf("Found");

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-05-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-06
    • 2016-11-04
    • 1970-01-01
    • 2013-03-21
    相关资源
    最近更新 更多