在字符串passCode中用_
替换带有2个字符的空格的正确方法是什么?
最后它应该输入/输出:(a )
→(a_)
。有没有办法使用isspace来做到这一点?
isspace(passCode[2]) == 0;
答案 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'。