题解 | #表示数字#

表示数字

https://www.nowcoder.com/practice/637062df51674de8ba464e792d1a0ac6

#include <stdio.h>
#include <string.h>
//插入函数
void add(char* str, char ch, int pos) {
    int len = strlen(str);
    len = len > pos ? len : pos;
    memmove(str + pos + 1, str + pos, len - pos + 1);
    str[pos] = ch;
}

int main() {

    char str[100];
    char ch = '*';
    scanf("%s", str);

    for (int i = 0; i < strlen(str); i++) {
        if ((str[i] >= '0' && str[i] <= '9')) {
            if (i == 0) {
                add(str, ch, 0);
                i++;
            } else if (!(str[i - 1] >= '0' && str[i - 1] <= '9')) {
                add(str, ch, i);
                i++;
            }
        }
    }

    for (int i = 0; i < strlen(str); i++) {
        if ((str[i] >= '0' && str[i] <= '9')) {
            if (!(str[i + 1] >= '0' && str[i + 1] <= '9')) {
                add(str, ch, i + 1);
                i++;
            }
        }
    }

    printf("%s", str);

    return 0;
}

全部评论
先写前面的 * 再写后面的 *
点赞 回复 分享
发布于 2023-03-02 13:56 陕西
可以写在一个for里面 “ for (int i = 0; i < strlen(str); i++) { if ((str[i] >= '0' && str[i] <= '9')) { if (!(str[i - 1] >= '0' && str[i - 1] <= '9')) { add(str, ch, i); i++; } if (!(str[i + 1] >= '0' && str[i + 1] <= '9')) { add(str, ch, i + 1); i++; } } }”
点赞 回复 分享
发布于 2023-03-02 14:09 陕西

相关推荐

点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务