int main(int argc, string argv[])
{
это то, что я хочу сделать, но это явно не сработает
string key = argv[1];
здесь я хочу использовать строку 'key' как массив символов, чтобы иметь дело только с конкретным символом
key = key[1] + 1;
printf("%s", key);
}
Вы говорите «очевидно, не сработает», но в зависимости от того, как определяется string, эта строка может работать отлично. Как определяется string? Вы это определили, или это определено в каком-то заранее написанном коде, который вам кто-то дал? (Это не определено в C, это я могу вам сказать. Вы думали о типе C++ std::string?)
в библиотеке <string.h> @IharobAlAsimi код был просто примером того, как я хочу использовать массив символов, я хочу использовать его как номер ASCII, поэтому в коде, который я написал if argv [1] равно 'abc', тогда ключ должен быть равен 'b' + 1 или 1 + 1 в соответствии с его номером ASCII.
@SteveSummit, вы имеете в виду, что этот код должен работать, если строка определена?
@ machine_1 Я уже стараюсь учиться, сэр. Я читаю, пытаюсь и спрашиваю, но не знаю, почему сообщество StackOverflow ожидает, что я буду экспертом и уже знаю ответ на мой собственный вопрос.
@FarahRushdy Сообщество StackOverflow не ожидает, что вы будете экспертом, но ожидает, что вы будете знать основы.
Я в процессе, но мне нужна помощь. @ machine_1
@FarahRushdy Нет, я не это имел в виду. Еслиstring были определены определенным образом, эта одна строка подойдет. Но были бы другие проблемы. Во-первых, мы должны знать, как string определяется для вас - вы знаете? Кроме того, что вы хотите, чтобы key = key[1] + 1 делал? Если argv[1] - это строка «кошка», что вы хотите добавить к этому ключу?
@SteveSummit Я хочу, чтобы он поменял символ, вроде как простой шифровальщик.
@FarahRushdy Если key является изменяемой строкой, то key[1] = key[1] + 1, или key[1] += 1, или key[1]++, или ++key[1] все добавят 1 к первому символу, изменяя «cat» на «dat». Но, конечно, вам все равно придется выяснить, во что вы хотите превратить z. Также вы еще не сказали, можете ли вы рассказать нам, как определяется string.
@FarahRushdy Нет, string не определен в заголовке string.h.





основная функция плохо отформатирована. argv - это 2D-массив.
int main(int argc, char **argv)
затем вы можете присвоить ключевую переменную и использовать, например, функцию strcpy для копирования argv [1] в ключевую переменную.
#include <string.h>
#include <stdio.h>
int main(int ac, char **av){
char *key = strdup(av[1]);
printf("%s", key);
free(key)
return (0);
}
Что такое
string? Нет такого типа в c и фактически все "струны" в c символьных массивах ARE. Поэтому, пожалуйста, напишите минимальный воспроизводимый пример и расскажите нам, почему он не работает так, как вы хотите. Кроме того, что должен делатьkey = key[1] + 1;?