如何将字符数组的元素与C中的字符进行比较?

时间:2018-01-11 00:22:52

标签: c arrays char

我正在解决一个问题,从字符串中删除给定字符的出现次数(CASE-SENSITIVE)。这是我的代码。

#include <stdio.h>
#include <string.h>
void func(char a[],char b[])
{
  int i, j = 0;
  char str1[30];
  for(i = 0; i < strlen(a); i++)
  {
    if(a[i] != b[0]){
      str1[j] = a[i];
      j++;
    }
  }
  str1[j]='\0';
  printf("%s",str1);
}
int main()
{
    char s[30],c[2];
    scanf("%[^\n]",s);//input string
    scanf("%s",c);//character to remove from string
    func(s,c);
    return 0;
}

如何改进此代码(例如:可能使用指针)? 我已经跳过错误检查,以确定当前字符不在字符串中。

2 个答案:

答案 0 :(得分:0)

你可以尝试这个代码! 另外我附上输出的截图。

#include <stdio.h>
#include <string.h>
void func(char a[],char b)
{
  int i, j = 0;
  char str1[30];
  for(i = 0; i < strlen(a); i++)
  {
    if(a[i] != b){
      str1[j] = a[i];
      j++;
    }
  }
  str1[j]='\0';
  printf("%s",str1);
}
int main()
{
    char s[30],c;
    printf("Enter string :");
    gets(s);//input string
    printf("Enter character that you want to remove :");
    scanf("%c",&c);//character to remove from string
    func(s,c);
    return 0;
}

Output

答案 1 :(得分:0)

这段代码可以解决问题。 如果刚刚开始,请密切研究它。 我已经包含了一些注释来解释代码正在做什么。

test = pd.DataFrame(
    [1, 2, 3, 4, 5, 6], 
    index=['2018-01-01', '2018-01-02',
           '2018-01-03', '2018-01-04',
           '2018-01-05', '2018-01-08']
)

HTH