C语言实验——保留整数

C语言实验——保留整数

时间: 1ms        内存:64M

描述:

输入一个字符串str1,把其中的连续非数字的字符子串换成一个‘*’,存入字符数组str2 中,所有数字字符也必须依次存入 str2 中。输出str2。

输入:

输入为一行字符串str1,其中可能包含空格。字符串长度不超过80个字符。

输出:

输出处理好的字符串str2。

示例输入:

$Ts!47&*s456  a23* +B9k

示例输出:

*47*456*23*9*

提示:

参考答案(内存最优[752]):

#include<stdio.h>
#include<string.h>
main()
{
    int i = 0, j = 0, n;
    char str1[80], str2[80];
    gets(str1);
    n = strlen(str1);
    for(i = 0; i < n; i++)
    {
        if(str1[i] >= '0' && str1[i] <= '9')
        {
            str2[j] = str1[i];
            j++;
        }
        else
        {
            if(str2[j - 1] != '*')
            {
                str2[j] = '*';
                j++;
            }
        }
    }
    for(i = 0; i < j; i++)
    {
        printf("%c", str2[i]);
    }
   
    return 0;
}

参考答案(时间最优[0]):

#include<stdio.h>
#include<string.h>
main()
{
    int i = 0, j = 0, n;
    char str1[80], str2[80];
    gets(str1);
    n = strlen(str1);
    for(i = 0; i < n; i++)
    {
        if(str1[i] >= '0' && str1[i] <= '9')
        {
            str2[j] = str1[i];
            j++;
        }
        else
        {
            if(str2[j - 1] != '*')
            {
                str2[j] = '*';
                j++;
            }
        }
    }
    for(i = 0; i < j; i++)
    {
        printf("%c", str2[i]);
    }
   
    return 0;
}

题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。

点赞

发表评论

电子邮件地址不会被公开。必填项已用 * 标注