Как удалить последний символ из строки на языке C?

Как можно изменить программу, чтобы она заменяла цифры только в том случае, если за ними нет других цифр, а только символы?
  • 21 января 2024 г. 3:08
Ответы на вопрос 1
Чтобы удалить последний символ из строки в языке C, вы можете воспользоваться следующими способами:

1. Использование индекса и присвоение нулевого символа `\0`:

```c
char my_string[] = "Hello";
int length = strlen(my_string);
if (length > 0) {
    my_string[length - 1] = '\0'; // Удалим последний символ
}
printf("Modified string: %s\n", my_string);
```

2. Использование указателя и арифметики указателей:

```c
char my_string[] = "Hello";
char *ptr = my_string;
while (*ptr != '\0') {
    ptr++; // Переходим к следующему символу
}
if (ptr != my_string) { // Проверяем, что строка не пустая
    *(ptr - 1) = '\0'; // Удалим последний символ
}
printf("Modified string: %s\n", my_string);
```

Чтобы модифицировать программу так, чтобы она заменяла цифры на другой символ (например `'X'`) только в том случае, если за ними нет других цифр, вы можете использовать следующий код:

```c
#include <stdio.h>
#include <string.h>
#include <ctype.h> // для использования функции isdigit()

void replace_digits_with_char(char *str, char replacement) {
    while (*str != '\0') {
        // Проверяем, является ли текущий символ цифрой и следующий символ не цифра или конец строки
        if (isdigit((unsigned char)*str) && !isdigit((unsigned char)*(str + 1))) {
            *str = replacement; // Заменяем цифру на replacement (например, 'X')
        }
        str++;
    }
}

int main() {
    char my_string[] = "Hello 1234 world 5!";
    
    replace_digits_with_char(my_string, 'X');
    printf("Modified string: %s\n", my_string);

    return 0;
}
```

В этом примере функция `replace_digits_with_char` принимает строку и символ, на который будут заменены цифры. Проходя по каждому элементу строки, она проверяет, является ли текущий символ цифрой, с помощью функции `isdigit`, и проверяет не является ли следующий символ цифрой. Если это условие истинно, цифра заменяется на указанный символ.
Похожие вопросы