Como manipular Cordas com personalidade em C ++

A ordem é uma sequência de variáveis ​​em C ++ que compartilha o mesmo nome e que é referenciado usando um índice. Os seguintes Concatenar programa insere duas cordas a partir do teclado e concatena-los em uma única cadeia:

// Concatenate - concatenar duas strings // com um "-" no meio # incluem #incluir #incluir usando namespace std - // protótipo declarationsvoid concatString (char szTarget [], char const szSource []) - int main (int nNumberofArgs, char * pszArgs []) {// leia primeira corda ... szString1 char [256] -cout lt; lt; "Enter string # 1:" - cin.getline (szString1, 128) - // ... agora a segunda cadeia ... carvão szString2 [128] -cout lt; lt; "Enter string # 2:" - cin.getline (szString2, 128) - // ... concatenar uma "-" para o primeiro ... concatString (szString1, "-") - // ... agora adicionar o segunda corda ... concatString (szString1, szString2) - // ... e exibir o resultcout lt; lt; " N" lt; lt; szString1 lt; lt; endl - // espera até que o usuário está pronto antes de terminar o programa // para permitir que o usuário veja o resultscout programa lt; lt; "Pressione Enter para continuar ..." lt; lt; endl-cin.ignore (10, ' n') - cin.get () - return 0 -} // concatString - concatenar a string szSource // para o final do szTarget stringvoid concatString (char szTarget [], char const szSource []) {// encontra o fim do primeiro stringint targetIndex = 0-tempo (szTarget [targetIndex]) {targetIndex ++ - //} a aderência da segunda para a extremidade do firstint sourceIndex = 0-tempo (szSource [sourceIndex] ) {szTarget [targetIndex] = szSource [sourceIndex] -targetIndex ++ - ++ sourceIndex -} // tack na terminação nullszTarget [targetIndex] = ' 0'-}

o Concatenar programa lê duas cadeias de caracteres e acrescenta-los em conjunto com um "-" no meio.

O programa começa por ler uma string a partir do teclado. O programa não usa o normal, cin >> szString1 por duas razões. Em primeiro lugar, o cin >> operação pára de leitura quando qualquer tipo de espaço em branco é encontrado. Caracteres até o primeiro espaço em branco são lidas, o espaço em branco é lançada, e os caracteres restantes são deixados no alimentador de entrada para a próxima cin >> declaração.

Assim, se você fosse para entrar # 147-the Dog # 148-, szString2 seria preenchido com # 147-o # 148- ea palavra # 147-cão # 148- seria deixado no buffer de entrada.

A segunda razão é que o getline () permite que o programador para especificar o tamanho da memória intermédia. A chamada para getline (szString2, 128) não vai ler mais de 128 bytes, não importa quantas sejam introduzidas.

Em vez disso, a chamada para getline () Entradas toda uma linha até, mas não incluindo a nova linha no final.

Depois de ler a primeira string em szString1 [], o programa acrescenta "-" na extremidade chamando concatString (). Ele concatena a segunda cadeia chamando concatString () com szString2 [].

o concatString () função aceita uma seqüência alvo, szTarget, e uma cadeia de origem, szSource. A função começa por varredura szTarget para o caractere nulo de terminação, que ele armazena em targetIndex. A função, em seguida, entra uma segunda volta em que ele copia personagens do szSource para dentro szTarget começando no nulo de terminação. A declaração final concatString () bate um nulo de terminação na corda concluída.

Um exemplo de saída a partir do programa aparece como segue:

Digite string # 1:isto é uma stringDigite string # 2:Esta é uma stringesta é uma cadeia - este é um STRINGPress Enter para continuar ...

menu