2017-10-30 6 views
-6

Ich habe eine Frage, lassen Sie uns in Betracht ziehen, ich habe ein Array, char A[50]. Lassen Sie uns sagen, mit "abcdef".Wie kann ich Zeichen einer Zeichenfolge lesen?

Wie kann ich Zeichen lesen, sagen wir "cd" und speichern in einem anderen Array, Char B[50]?

+1

Sie können einzelne Zeichen wie A [2] und A [3] adressieren, die wichtigere Frage ist wahrscheinlich "warum CD" und nicht "de" zum Beispiel? – fvu

+0

@Robert Ernest Wenn Sie C bedeuten dann verwenden Sie strncpy deklariert in der Kopfzeile

+0

Sorry, in C würde ich wollen, aber ich hatte gehofft vielleicht Leute, die C++ kennen können die Antwort kennen –

Antwort

1

Sie können strncpy verwenden einen Teil von einem Array zu einem anderen zu kopieren, und dann beenden, dass die Teilkette:

int start = 2, count = 2 
strncpy(B, A + start, count); 
B[count] = '\0'; 

Antwort auf eine ältere Version der Frage, die über C war ++:

Es gibt jedoch einen besseren Ansatz: Verwenden Sie keine Arrays, sondern std::string statt:

std::string A = "abcdef"; 
auto B = A.substr(2, 2); 
0

Wenn Sie Adressen verwenden und ausgleicht Sie nur sprintf wie verwenden:

#include <stdio.h> 

int main() 
{ 
    char A[50] = "abcdef"; 
    char B[50] = {0}; 

    unsigned offset = 2; 
    unsigned len = 2; 

    sprintf(B,"%.*s",len,&A[offset]); 
    printf("%s",B); 
    return(0); 
} 

mit den Werten von A Dies führt bei der Besetzung von B [2] und A [3] und eine String-Terminator = " cd \ 0 ". Wenn Sie keine Strings wollen, sondern nur die Daten in den Elementen des Arrays, dann wird ein einfacher memcpy() den Trick machen.

Verwandte Themen