Задача: В заданной строке удалить все латинские буквы.
Ввод | Вывод |
zdfgzdfg987w435kjwbsdf987w345 | 987435987345 |
Решение:
Код программы С++:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
#include <iostream> #include <string> using namespace std; int main() { string s; cin>>s; for (int i=0; i<s.length(); i++){ if ((s[i]>='a'&&s[i]<='z')||(s[i]>='A'&&s[i]<='Z')){ s.erase(i,1); i--; } } cout<<s; } |
Ссылка на ideone Java: http://ideone.com/a2x238
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
import java.util.*; import java.lang.*; import java.io.*; class Ideone { public static void main (String[] args) throws java.lang.Exception { Scanner in = new Scanner(System.in); String sin = in.nextLine(); StringBuffer str = new StringBuffer(sin); char si; for (int i=0; i<str.length(); i++){ si=str.charAt(i); if ((si>='a'&&si<='z')||(si>='A'&&si<='Z')){ str.deleteCharAt(i); i--; } } System.out.printf("%s",str); } } |
Вводим строку. Перебираем все символы строки в цикле и удаляем символ, если он является латинской буквой
Как медленный вариант подойдет. Допишите метки и расставьте отступы в коде, пожалуйста.
Исчезла ссылка на код С++ да и опубликованный С++ код нуждается в свежем взгляде «с высоты прожитых лет». В старом коде читается не строка текста, а только одно слово. Нужно использовать getline().