Софтуерно Инженерство
Loading...
+ Нов въпрос
melda.h avatar melda.h 4 Точки

Масив от char

Имам масив от char a[10000] и със cin вкарвам елементи. Въпроса ми е как да намеря индекса на последния елемент? Защото трябва да обръщам дума ако например думата е banana и n=3 тогава тя трябва да стане anaban?

Тагове:
0
C++ Programming
WifiAvivi avatar WifiAvivi 150 Точки

char[] arr = { 'a', 'b', 'c' };
int lastElement = arr.Length - 1;
Console.WriteLine(lastElement); // 2

 

Това ли ти трябва?




 

0
15/01/2017 14:01:19
melda.h avatar melda.h 4 Точки

Обаче на c++

0
melda.h avatar melda.h 4 Точки

#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;   

}

 

Нещо такова имам ?

0
lubomirjurukov avatar lubomirjurukov 63 Точки

#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;   

}

0
melda.h avatar melda.h 4 Точки

Не ми изкарва нищо на конзолата

0
melda.h avatar melda.h 4 Точки

Защо това не работи?

Вход: 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];
    }


}

0
VladimirAnaniev avatar VladimirAnaniev 54 Точки

Препоръчвам ти да използваш cin.getline() когато запазваш текст от кнозолата в масив от символи.

Дължината можеш да получиш с помощта на функцията strlen. (за целта трябва да инклуднеш #include <cstring>). И внимавай с детерминиращия символ.

0
melda.h avatar melda.h 4 Точки

Да ама не трябва да инклудвам други библиотеки.

0
StiliyanIliev avatar StiliyanIliev 1 Точки

Пишеш цикъл до a!='\0'+1 :)

0
melda.h avatar melda.h 4 Точки

Не разбрах

0