Advertisement
Malinovsky239

пример на строки №1

Oct 22nd, 2011
178
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.42 KB | None | 0 0
  1. #include <cstdio>
  2. #include <string>
  3.  
  4. #define L int(1e5 + 5)
  5.  
  6. char s[L]; // массив символов, он же строка
  7.  
  8. int main() {
  9.     gets(s); // считываем строку до конца
  10.     int l = strlen(s); // длина строки
  11.     puts(s); // вывод строки и перевод курсора
  12.  
  13.     // посчитаем, сколько в строке цифр
  14.     int cnt = 0;
  15.     for (int i = 0; i < l; i++)
  16.         if ('0' <= s[i] && s[i] <= '9')
  17.             cnt++;
  18.     printf("%d\n", cnt);
  19.  
  20.     /* Важно: признак конца строки - символ '\0',
  21.     gets() добавляет его в конец автоматом, но если
  22.     завести недостаточно большой массив под строку
  23.     (например, массив длины 4 под строку "lksh"), то
  24.     может случиться Runtime Error или ещё что-нибудь
  25.     нехорошее и непредсказуемое. Поэтому я обычно массивы
  26.     делаю на несколько элементов больше, чем нужно.
  27.     Например, размера не int(1e5), а int(1e5 + 5).
  28.  
  29.     '\0' не учитывается при подсчёте длины строки
  30.         */
  31.  
  32.         /* укоротим строку на два символа. Для этого
  33.         сдвинем '\0'
  34.     */
  35.  
  36.         s[l - 2] = '\0';
  37.         puts(s);
  38.  
  39.     return 0;
  40. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement