Как добавить 1 к каждой букве в строке и распечатать? - PullRequest
0 голосов
/ 07 апреля 2020

Я пытаюсь получить доступ к каждому символу в строке и добавить 1 к нему перед печатью текста. Например. мой код предложит пользователю ввести текст ie. привет, и он должен напечатать этот текст плюс 1 символ (т. е. вывести «ifmmp», когда ввод «привет»). Из приведенного ниже кода вместо a для l oop я пытаюсь использовать некоторое время l oop, чтобы сделать это, однако я сталкиваюсь с некоторыми проблемами, и, похоже, он не печатает ответ. Любая помощь с благодарностью.

// Libraries
#include <cs50.h>
#include <stdio.h>
#include <math.h>
#include <string.h>
#include <stdlib.h>
#include <ctype.h>

int main(int argc, string argv[])

{
    // If
    if (argc == 2 && (atoi(argv[1]) > 0))
     for(int i = 0, len = strlen(argv[1]); i < len; i++)
        {
            char n = argv[1][i];
            int digit = isdigit(n);

            if (!digit)
            {
                printf("Usage: ./caesar key\n");
                return 1;
            }

            else
            {
              string plain = get_string("plaintext: ");
              int k = 0;
              int len_plain = strlen(plain);
              while (len_plain > k)
                    k++;
                    char cipher = plain[k];


                    {
                         printf("%c\n", cipher);
                    }
            }
        }
    else
    {
       printf("Usage: ./caesar key\n");
       return 1;
    }
}

1 Ответ

1 голос
/ 07 апреля 2020

Ваш вопрос:

Я пытаюсь получить доступ к каждому символу в строке и добавить 1 к нему перед печатью текста

Это можно сделать разными способами - вот один пример:

#include <stdio.h>

int main(void) {
    char str[10] = "hello";
    int i = 0;
    while(str[i])
    {
        ++str[i];  // Add 1
        ++i;
    }
    printf("%s\n", str);
    return 0;
}

Вывод:

ifmmp
...