Um string nada mais é que uma seqüência especial de caracteres. Em C, eles são colocadas entre ". Assim, "oba", "teste\n" (que usamos muito no printf) são exemplos de string.
Agora não confunda: 'x' é o CARACTER x, enquanto que "x" é o STRING x. E qual a diferença? Já vamos ver.
O C, infelizmente, não tem um tipo string pré-definido. Ou seja, ele tem que representar string de outra forma. E como ele representa? Como um vetor de caracteres terminado pelo caracter '\0'. Sendo assim, a única diferença entre um vetor de caracteres e uma string é a obrigatoriedade do '\0' no final da string. Só como curiosidade, o código ASCII do '\0' é 0 (faça printf("%d\n",'\0'); para ver).
Agora sim, podemos ver a diferença entre 'x' e "x". Quando escrevemos "x" o compilador, na verdade, cria um vetor com 2 caracteres: 'x' e '\0'. Por isso você não deve fazer confusão.
Como escrevemos na tela uma string?
printf("Minha string é: %s", "string");
E isso imprime:
Minha string é: string
Fonte: https://www.ic.unicamp.br/~norton/disciplinas/mc1022s2005/06_10.html