Как скопировать элемент строкового массива в другую строковую переменную?

int main(int argc, string argv[])
{

это то, что я хочу сделать, но это явно не сработает

    string key = argv[1]; 

здесь я хочу использовать строку 'key' как массив символов, чтобы иметь дело только с конкретным символом

    key = key[1] + 1; 
    printf("%s", key);
}

Что такое string? Нет такого типа в c и фактически все "струны" в c символьных массивах ARE. Поэтому, пожалуйста, напишите минимальный воспроизводимый пример и расскажите нам, почему он не работает так, как вы хотите. Кроме того, что должен делать key = key[1] + 1;?

Iharob Al Asimi 28.04.2018 16:03

Вы говорите «очевидно, не сработает», но в зависимости от того, как определяется string, эта строка может работать отлично. Как определяется string? Вы это определили, или это определено в каком-то заранее написанном коде, который вам кто-то дал? (Это не определено в C, это я могу вам сказать. Вы думали о типе C++ std::string?)

Steve Summit 28.04.2018 16:09

в библиотеке <string.h> @IharobAlAsimi код был просто примером того, как я хочу использовать массив символов, я хочу использовать его как номер ASCII, поэтому в коде, который я написал if argv [1] равно 'abc', тогда ключ должен быть равен 'b' + 1 или 1 + 1 в соответствии с его номером ASCII.

Farah Rushdy 28.04.2018 16:27

@SteveSummit, вы имеете в виду, что этот код должен работать, если строка определена?

Farah Rushdy 28.04.2018 16:30

@ machine_1 Я уже стараюсь учиться, сэр. Я читаю, пытаюсь и спрашиваю, но не знаю, почему сообщество StackOverflow ожидает, что я буду экспертом и уже знаю ответ на мой собственный вопрос.

Farah Rushdy 28.04.2018 16:32

@FarahRushdy Сообщество StackOverflow не ожидает, что вы будете экспертом, но ожидает, что вы будете знать основы.

machine_1 28.04.2018 16:33

Я в процессе, но мне нужна помощь. @ machine_1

Farah Rushdy 28.04.2018 16:35

@FarahRushdy Нет, я не это имел в виду. Еслиstring были определены определенным образом, эта одна строка подойдет. Но были бы другие проблемы. Во-первых, мы должны знать, как string определяется для вас - вы знаете? Кроме того, что вы хотите, чтобы key = key[1] + 1 делал? Если argv[1] - это строка «кошка», что вы хотите добавить к этому ключу?

Steve Summit 28.04.2018 16:36

@SteveSummit Я хочу, чтобы он поменял символ, вроде как простой шифровальщик.

Farah Rushdy 28.04.2018 16:38

@FarahRushdy Если key является изменяемой строкой, то key[1] = key[1] + 1, или key[1] += 1, или key[1]++, или ++key[1] все добавят 1 к первому символу, изменяя «cat» на «dat». Но, конечно, вам все равно придется выяснить, во что вы хотите превратить z. Также вы еще не сказали, можете ли вы рассказать нам, как определяется string.

Steve Summit 28.04.2018 17:02

@FarahRushdy Нет, string не определен в заголовке string.h.

Iharob Al Asimi 29.04.2018 00:56
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
2
11
50
2

Ответы 2

основная функция плохо отформатирована. 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);
}

Другие вопросы по теме