Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <cstdio>
- #include <string>
- #define L int(1e5 + 5)
- char s[L]; // массив символов, он же строка
- int main() {
- gets(s); // считываем строку до конца
- int l = strlen(s); // длина строки
- puts(s); // вывод строки и перевод курсора
- // посчитаем, сколько в строке цифр
- int cnt = 0;
- for (int i = 0; i < l; i++)
- if ('0' <= s[i] && s[i] <= '9')
- cnt++;
- printf("%d\n", cnt);
- /* Важно: признак конца строки - символ '\0',
- gets() добавляет его в конец автоматом, но если
- завести недостаточно большой массив под строку
- (например, массив длины 4 под строку "lksh"), то
- может случиться Runtime Error или ещё что-нибудь
- нехорошее и непредсказуемое. Поэтому я обычно массивы
- делаю на несколько элементов больше, чем нужно.
- Например, размера не int(1e5), а int(1e5 + 5).
- '\0' не учитывается при подсчёте длины строки
- */
- /* укоротим строку на два символа. Для этого
- сдвинем '\0'
- */
- s[l - 2] = '\0';
- puts(s);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement