Форум программистов, компьютерный форум CyberForum.ru

Превращение буквы алфавита в соответствующую ей цифру в нем - C++

Восстановить пароль Регистрация
 
DeTeron
0 / 0 / 1
Регистрация: 27.05.2014
Сообщений: 4
27.05.2014, 18:58     Превращение буквы алфавита в соответствующую ей цифру в нем #1
Доброе время суток! Была составлена программа на Delphi с такой вот задачей:
Из текстового файла, состоящего из 6-7 строк, сформировать массив слов. В словах заменить малые буквы латинского алфавита строкой цифр, так чтобы каждому символу соответствовали определенные цифры, например a - 01, b - 02, c - 03, ... , z - 26. Результат записать в файл. Вывести исходный и полученный файлы.
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
program Project1;
 
{$APPTYPE CONSOLE}
 
{$R *.res}
 
uses
  System.SysUtils;
{a-01,b-02,c-03,d-04,e-05,f-06,g-07,h-08,i-09,
j-10,k-11,l-12,m-13,n-14,o-15,p-16,q-17,r-18,s-19,
t-20, u-21, v-22,w-23, x-24,y-25,z-26}
 
var s,s2,s1:string; n,i,y, j,m:integer; z:array[1..100]of integer;
begin
s:='karl ykral koralli.....abcdef';
write(s);
writeln;
for i:=1 to length(s) do begin
m:=ord(s[i]);
//write(m,' ');
if (m>96) and (m<123) then
begin
if (m>96) and(m<106) then
s1:=s1+'0'+IntToStr((m-96));
if (m<123)and (m>105) then
s1:=s1+IntToStr((m-96));
end else s1:=s1+s[i];
end;
writeln;
writeln(s1);
readln;
end.
Просьба, если не затруднит кого-нибудь, надо сделать тоже самое, но на С++. Нет в голове ну никаких идей(
Заранее спасибо!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.05.2014, 18:58     Превращение буквы алфавита в соответствующую ей цифру в нем
Посмотрите здесь:

C++ нужно чтобы в строке если встречается символ то прибавить соответствующую цифру к числу
Найти цифру, соответствующую разряду сотен C++
Найти цифру, соответствующую разряду сотен в записи числа C++
В текстовом файле t записаны буквы латинского алфавита и цифры. Занести в текстовый файл h из текстового файла t только латинские буквы. C++
написать на с++ программу для Кода Цезаря, сдвиг на 3 буквы, чтобы в консоле конвертировал на 3 буквы вперед (алфавита) C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
jurok_85
226 / 209 / 70
Регистрация: 21.02.2013
Сообщений: 494
27.05.2014, 20:06     Превращение буквы алфавита в соответствующую ей цифру в нем #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include <iostream>
#include <cstdlib>
#include <string>
using namespace std;
 
 
 
int main()
{
   string str = "karl ykral koralli.....abcdef", result;
   int i = 0, j;
   char c, r[3];
   while(str[i])
   {
       c = tolower(str[i]);
       if(c > 96 && c <106)
       {
           result.push_back('0');  j = c - 96;
           c = (char)(((int)'0') + j);
           result.push_back(c);
       }
       else if(c >= 106 && c < 123)
       {
           j = c - 96;
           itoa(j, r, 10);
           result += r;
       }
       i++;
   }
   cout << result;
    return 0;
}
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
27.05.2014, 20:46     Превращение буквы алфавита в соответствующую ей цифру в нем #3
jurok_85, магические числа - плохо. Почему бы просто не вычесть из текущего символа 'a'?
jurok_85
226 / 209 / 70
Регистрация: 21.02.2013
Сообщений: 494
28.05.2014, 00:44     Превращение буквы алфавита в соответствующую ей цифру в нем #4
Tulosba, а что такое магические числа?
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
28.05.2014, 07:29     Превращение буквы алфавита в соответствующую ей цифру в нем #5
jurok_85, это числа, назначение которых не очевидно. В данном случае это как минимум 96,106,123. Да и код, судя по всему, кривоват.
DeTeron
0 / 0 / 1
Регистрация: 27.05.2014
Сообщений: 4
28.05.2014, 14:22  [ТС]     Превращение буквы алфавита в соответствующую ей цифру в нем #6
Вопрос. Что такое:
C++
1
2
3
4
5
6
7
else if(c >= 106 && c < 123)
       {
           j = c - 96;
           itoa(j, r, 10);
           result += r;
       }
       i++;
Добавлено через 4 часа 54 минуты
Все. Разобрался со всем) спасибо jurok_85. Итоговый код программы для С++:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#include "stdafx.h"
#include <iostream>
#include <cstdlib>
#include <string>
using namespace std;
 
 
int _tmain(int argc, _TCHAR* argv[])
{
 
        string str = "karl ykral koralli.....abcdef", result;
        cout << str << endl;
        string Istr = "";
        int i = 0, j;
        char c, r[3];
        while (str[i])
        {
            c = tolower(str[i]);
            if ((c > 96) && (c <106))
            {
                result.push_back('0');  j = c - 96;
                c = (char)(((int)'0') + j);
                result.push_back(c);
                Istr = Istr +'0'+ c;
            }
            else if ((c >= 106 )&& (c < 123))
            {
                j = c - 96;
                _itoa_s(j, r, 10);
                Istr = Istr + r;
                //result += r;
            }
            else Istr = Istr + str[i];
            
            i++;
        }
        cout << Istr<<endl;
        return 0;
    
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.05.2014, 15:35     Превращение буквы алфавита в соответствующую ей цифру в нем
Еще ссылки по теме:

C++ Файл содержит буквы латинского алфавита. Заменить буквы 'р' на 'w'
Используя одну операцию деления нацело и одну операция взятия остатка от деления найти цифру. соответствующую разряду ты C++
C++ Предложение содержит буквы латинского и русского алфавитов. Вывести буквы только латинского алфавита

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
28.05.2014, 15:35     Превращение буквы алфавита в соответствующую ей цифру в нем #7
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include <iostream>
#include <cstdlib>
#include <string>
#include <sstream>
#include <iomanip>
 
int main()
{
   std::string str = "karl ykral koralli.....abcdef";
   std::stringstream ss;
        
   std::cout << str << std::endl;
 
   for( auto& c : str )
   {
      if( std::isalpha(c) )
      {
         if( std::tolower(c) == c )
         {
            ss << std::setfill('0') << std::setw(2) << (c-'a'+1);
         }
      }
      else
      {
         ss << c;
      }
   }
        
   std::cout << ss.str() << std::endl;
        
   return 0;
}
http://ideone.com/MJvBg3
Yandex
Объявления
28.05.2014, 15:35     Превращение буквы алфавита в соответствующую ей цифру в нем
Ответ Создать тему
Опции темы

Текущее время: 20:47. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru