2014-05-27 2 views
-6

Я изучаю языки программирования и нуждаюсь в помощи для понимания логики сценария, где я беру string в качестве входных данных, заменяя все буквы такими цифрами, как (a = 0, b = 1 , c = 2), а затем суммировать и, наконец, отобразить его.конвертировать буквы в целое число, а затем найти сумму строки

ex: если строка «abcd», тогда выход должен быть 0 + 1 + 2 + 3 = 6.

Заранее спасибо.

+1

«switch' statements FTW! –

+0

В Kernighan и Ritche есть пример на «языке программирования C», который показывает вам, как это сделать. – Bathsheba

+2

Подсказка: [ASCII] (http://www.asciitable.com/). – Maroun

ответ

4

Я бы предпочел не публиковать полное решение, потому что тогда он пропустит все «Я изучаю языки программирования» (если вы не хотите «копировать ответы HW из SO», и я предполагаю, что вы не:))

  • ASCII-коды букв являются непрерывными кусками между 65-90 и 97-122 для столиц и не являющихся столицами соответственно
  • Если вы используете фактический string (имеет смысл, так как это помечено c++) вы должны прочитать here о доступе к определенному символу в строке (что совпадает с массивом, но точка должна начать знакомиться с v справочная документация \ справочные страницы).
0
#include <stdio.h> 
#include <string.h> 

int main(){ 
    const char *string="abcd"; 
    unsigned sum = 0; 
    while(*string) 
     sum += strcspn("abcdefghijklmnopqrstuvwxyz", (char [2]){ *string++ }); 
    printf("%u\n", sum); 
    return 0; 
} 
+0

Я бы использовал std :: string и iostreams, так как его тег C++. И не назовет переменную «строка». , strcspn - хороший трюк. – quantdev

+0

Спасибо @BLUEPIXY за то, что дал мне знать этот трюк. Не знал об этом. – user3679297

Смежные вопросы