kshnkvn
@kshnkvn
yay ✌️ t.me/kshnkvn

Как сравнивать и прибавлять строки в «C»?

На языке "С" есть следующие строки, одна из которых получена путем ввода с клавиатуры:
string stringOne, stringTwo;
stringOne = GetString();

Для начала, необходимо N-ю букву из stringOne поместить в stringTwo.
stringTwo[0] = stringOne[6];
Не работает. Возможно для этого есть какая то функция, или string нужно преобразовать в char?
Далее всю ту же stringOne я проверяю на наличие различных символов, после чего нужно определить в какой ячейке они расположены и вывести их.
int position, n;
do{
        if(stringOne[n] == "*"){
            printf("%d", position);
        }else n++;
}while(n <= 50);

Есть команда strncat, которая прибавляется строки друг к другу. Допустим, есть все та же stringTwo, в которой всего 1 буква и есть stringTemp, в которой 6 букв, так вот функция strncat(stringTwo, stringTemp); почему то не работает.
  • Вопрос задан
  • 215 просмотров
Решения вопроса 1
@Tuvan
stringTwo[0] тут память не выделена ,а вы пытаетесь что-то вставить
string a, b;
	int n = 3;
	a = "helloWorld";
	b.resize(n); //b.resize(1);
	b[0] = a[n];

либо
string a, b;
a = "helloWorld";
b+=a[3];
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
Daniro_San
@Daniro_San
Программист
А может быть это C++? ...точечку после stringOne пробовали ставить?
Ответ написан
strncat в качестве аргументов принимает указатели на char (начало строки), и в Си строки обычно представляются как массивы char. Разберитесь, что у вас из себя представляет тип string, ибо если мне не изменяет память, в чистом си его нет
Ответ написан
Комментировать
@iv_k
у вас похоже С++ и класс std::string. читайте документацию по нему.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы