用C语言替换空格

时间:2014-09-26 05:31:18

标签: c

在字符串passCode中用_替换带有2个字符的空格的正确方法是什么? 最后它应该输入/输出:(a )(a_)。有没有办法使用isspace来做到这一点?

isspace(passCode[2]) == 0;

3 个答案:

答案 0 :(得分:2)

字符替换的一种简单方法就是创建一个指向字符串的指针,然后检查字符串中的每个字符的值x,并将其替换为字符y。一个例子是:

#include <stdio.h>

int main (void)
{

    char passcode[] = "a ";
    char *ptr = passcode;

    while (*ptr)
    {
        if (*ptr == ' ')
            *ptr = '_';
        ptr++;
    }

    printf ("\n passcode: %s\n\n", passcode);

    return 0;
}

<强>输出:

$ ./bin/chrep

 passcode: a_

答案 1 :(得分:1)

如果是,请检查字符是否为空格,然后将其替换为_

例如:

#include <stdio.h>
#include <ctype.h>
int main ()
{
  int i=0;
  unsigned char str[]="a ";
  while (str[i])
  {
    if (isspace(str[i])) 
        str[i]='_';
    i++;
  }
  printf("%s\n",str);
  return 0;
}

答案 2 :(得分:0)

最好的方法是:

 #include <stdio.h>

 void replace_spaces(char *str)
 {
   while (*str)
   {
     if (*str == ' ')
       *str = '_';
     str++;
   }
 }

int main(int ac, int av)
{
  char *pass = 'pas te st';

  replace_spaces(pass);
  printf("%s\n", pass);
  return (0);
}

传递我现在等于'pas_te_st'。