Масив от char
Имам масив от char a[10000] и със cin вкарвам елементи. Въпроса ми е как да намеря индекса на последния елемент? Защото трябва да обръщам дума ако например думата е banana и n=3 тогава тя трябва да стане anaban?
Имам масив от char a[10000] и със cin вкарвам елементи. Въпроса ми е как да намеря индекса на последния елемент? Защото трябва да обръщам дума ако например думата е banana и n=3 тогава тя трябва да стане anaban?
char[] arr = { 'a', 'b', 'c' };
int lastElement = arr.Length - 1;
Console.WriteLine(lastElement); // 2
Това ли ти трябва?
#include <iostream>
using namespace std;
int main() {
char str[10000];
char* pstr = str;
while (cin) {
cin >> *pstr;
pstr++;
}
int k = 0;
for (int i = 0; i <= 10000; i++) {
if (*(str + i) == NULL) {
k = i;
}
}
cout << k;
}
Нещо такова имам ?
#include <iostream>
using namespace std;
int main() {
char str[10000];
char* pstr = str;
int strLength = 0;
while (cin) {
cin >> *pstr;
strLength++;
pstr++;
}
int k = 0;
for (int i = 0; i <= 10000; i++) {
if (*(str + i) == NULL) {
k = i;
}
}
cout << k;
}
Не ми изкарва нищо на конзолата
Защо това не работи?
Вход: Angel
n=3
Изход:
gelAn
#include <iostream>
using namespace std;
int main() {
char str[100];
char* pstr = str;
int strLenght = -1;
while (cin) {
cin >> *pstr;
strLenght++;
pstr++;
}
int number;
cin >> number;
char b[100];
int startIndex = strLenght - number + 1;
int endIndex = strLenght - number;
for (int i = 0; i < number; i++) {
b[i] = str[startIndex];
startIndex++;
}
for (int j = 0; j < startIndex; j++) {
b[number] = str[j];
j++;
}
for (int i = 0; i <= strLenght - 1; i++) {
cout << b[i];
}
}
Препоръчвам ти да използваш cin.getline() когато запазваш текст от кнозолата в масив от символи.
Дължината можеш да получиш с помощта на функцията strlen. (за целта трябва да инклуднеш #include <cstring>). И внимавай с детерминиращия символ.
Да ама не трябва да инклудвам други библиотеки.
Пишеш цикъл до a!='\0'+1 :)
Не разбрах
Обаче на c++