Assinale o modo correto para a atribuição de uma string na linguagem C.
- A)char xxx[] = "Exemplo de string";
Correta: em C, uma string pode ser declarada como um vetor de char inicializado com texto entre aspas.
- B)set xxx = "Exemplo de string";
Errada: set nao e palavra-chave de C para declaracao de string.
- C)str xxx[] = "Exemplo de string";
Errada: str nao e um tipo padrao da linguagem C.
- D)string xxx = "Exemplo de string";
Errada: string nao e um tipo nativo da linguagem C, ao contrario de linguagens como Java ou C#.
- E)var xxx = "Exemplo de string";
Errada: var nao e forma de declaracao de string em C e nao existe essa sintaxe padrao na linguagem.
Gabarito: A
Em C, string nao e um tipo pronto como acontece em algumas linguagens modernas. O que voce faz, na pratica, e criar um vetor de caracteres, ou seja, um array de char, e inicializa-lo com o texto entre aspas. Por isso a forma char xxx[] = "Exemplo de string"; esta correta: o compilador guarda a sequencia de caracteres e ainda adiciona o caractere nulo '\0' no final, que marca o termino da string. Essa ideia e bem classica da linguagem C: strings sao tratadas como vetores de char. Entao, quando voce ve "string" em C, desconfie, porque isso nao e uma declaracao padrao da linguagem. O padrao da linguagem C (ISO C, por exemplo C17/C18) trabalha com arrays de caracteres e ponteiros para char, nao com um tipo nativo chamado string. Na alternativa correta, os colchetes vazios indicam que o tamanho do vetor sera definido pela propria inicializacao. O compilador conta os caracteres do texto e reserva espaco para todos eles mais o '\0'. Simples e elegante, do jeitinho que cai em prova para ver quem conhece a base. Resumindo: em C, string e um uso convencional de um vetor de char, nao um tipo especial. Se voce lembrar disso, ja mata a questao sem sofrimento.