Помогите перевести из С++ на С или реализовать функцию "Виризать номер телефона из СМС" - C (СИ)
Формулировка задачи:
#include "iostream.h" #include <windows.h> #include "stdafx.h" #include "string" using namespace std; int _tmain(int argc, _TCHAR* argv[]) { setlocale(LC_ALL, "Russian_Russia.1251"); string Test; Test="Перезвоните на этот номер телефона: +380677753986\n"; Test.erase(0,Test.find('+380')); printf(Test.c_str());//выводим простую строку return 0; }
Решение задачи: «Помогите перевести из С++ на С или реализовать функцию "Виризать номер телефона из СМС"»
textual
Листинг программы
#include <stdio.h> #include <stdlib.h> #include <string.h> int main() { char str[] = "Перезвоните на этот номер телефона: +380677753986"; char keystr[] = "+38", *p; size_t key_len = strlen( keystr ); if ( ( p = strstr( str, keystr ) ) ) memmove( p, p + key_len, strlen( p + key_len ) + 1 ); else printf( "%s no found in ", keystr ); puts( str ); return 0; }
Объяснение кода листинга программы
- Подключение необходимых библиотек: iostream, stdlib, string.
- Объявление строки, содержащей номер телефона.
- Объявление строки, содержащей символ
+
и цифры, которые обозначают код страны. - Вычисление длины строки с кодом страны.
- Проверка наличия кода страны в строке с номером телефона.
- Если код страны найден, то происходит перемещение символов в строке, чтобы номер телефона начинался с
+38
. - Если код страны не найден, то выводится сообщение об этом.
- Вывод номера телефона.
- Возврат 0, чтобы программа завершилась успешно.