编写一个函数,实现把一个字符串中所有数字字符替换成“*”。在主函数中完成输入与

如题所述

核心是判断字符是否为数字,如果是就替换为“*”,即:if(s[i]>'0'&&s[i]<'9') { s[i]='*' } 。

整个函数具体代码如下:

#include<stdio.h>

#include<string.h>

void changes(char*s)

{

int i;

for(i=0;i<strlen(s);i++)

{

if(s[i]>'0'&&s[i]<'9')

s[i]='*';

}

}

int main()

{

char s[1000];

gets(s);

changes(s);

putchar(s);

return 0;

}

扩展资料:

判断一个字符是否为数字的两种方法:

1、直接判断

#include <stdio.h>

int main()

{   

    char c;

    c = getchar();//读取一个字符。

    if(c >='0' && c<='9')printf("是数字\n");

    else  if(c >='a' && c<='z' ||  c >='A' && c<='Z'))

        printf("是字母\n");

    else 

        printf("是特殊字符\n");

    return 0;

}

2、库函数

int main()

{

    char c;

    c = getchar();

    //来判断是否为数字,如果是数字那么会返回非0

    if(isdigit(c) != 0)

        printf("是数字\n") ;

    //来判断是否为字母,如果是字母那么返回非0

    else if(isalpha(c) != 0)

        printf("是字母\n"); 

    else

        printf("是特殊字符\n");

}

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-05-15
#include<stdio.h>
#include<string.h>
void changes(char*s)
{
int i;
for(i=0;i<strlen(s);i++)
{
if(s[i]>'0'&&s[i]<'9')
s[i]='*';
}
}
int main()
{
char s[1000];
gets(s);
changes(s);
putchar(s);
return 0;
}

我没编译过,不过应该是对的本回答被提问者和网友采纳