Получить строку до первой цифры - PullRequest
0 голосов
/ 28 ноября 2018

Мне нужно получить все символы до первой цифры из массива.Я сделал это, и, кажется, работает правильно:

#include <stdio.h>

int main() {
    char temp[128] = {0};
    char str_active[128] = {0};

    sprintf(temp, "%s", "AB01");
    printf("Complete string.: %s\n", temp);

    int len = sizeof(temp) / sizeof(char);
    int index = 0;
    while (index < len) {
        if (isdigit(temp[index])) {
            break;
        } else {
            index++;
        }
    }
    snprintf(str_active, index + 1, "%s\n", temp);
    printf("String before first digit.: %s\n", str_active);

    return 0;
}

Мне интересно, смогу ли я сделать то же самое с меньшим количеством инструкций, так что лучше ...

1 Ответ

0 голосов
/ 28 ноября 2018

Функция strcspn может сделать это за вас:

Функция strcspn () вычисляет длину начального сегмента s, который полностью состоит из байтов, которые не отбракованы.

#include <stdio.h>
#include <string.h>

int main() {

    char temp[128] = {0};
    char str_active[128] = {0};

    sprintf(temp, "%s", "AB01");
    printf("Complete string.: %s\n", temp);

    strncpy(str_active, temp, strcspn(temp, "0123456789"));
    printf("String before first digit.: %s\n", str_active);

    return 0;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...