c语言的题目求指教 从键盘输入一行字符串(字符个数不大于30),剔出其中的数字字符后输出结果。

要求:1)程序中必须借助指针完成
2)请通过函数调用完成剔除数字字符的功能

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
void GetDigitsString(char *s)
{
int i, j = 0;

for (i = 0; i < strlen(s); i )
{
if (s[i] < '0' || s[i] > '9')
s[j ] = s[i];
}
s[j ] = '\0';
}

int main(void)
{
char str[80];
printf("输入一行字符:\n");
gets(str);
GetDigitsString(str);
printf("新字符串是:\n%s\n", str);
system("pause");
return 0;
}希望能够帮到你。祝你愉快!
我刚才忘了不多余30个,因此你把主函数中的char str[80]改为char str[30]就可以了
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-06-10
#include "stdafx.h"
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <ctype.h>

void transf(char s[])
{
    int i=0;
    //s = NULL;
    
    while(i<strlen(s))
    {
        if (isalpha(s[i]))
        {
            printf("%c",s[i]);
        }
        i++;
    }
}
void main()
{
    char *s;
    char p[30]="";
    //s = nullptr;
    printf("please input a string!!\n");
    gets(p);
    s = p;
    puts(s);
    transf(s);
    system("pause");
}

第2个回答  2013-06-10
#include<stdio.h>
void main()
{
void fun(char str[],char str1[]);
char str[80],str1[80];
gets(str);
fun(str,str1);
printf("%s",str1);
getchar();
}
void fun(char str[],char str1[])
{
int i,j;
for(i=0,j=0;str[i]!='\0';i++)
if(str[i]>'9'||str[i]<'0')str1[j++]=str[i];
str1[j]='\0';
}
第3个回答  2013-06-10

相似回答