Exercício 1. Considere o trexo de código abaixo:
char string1[128]; printf("digite uma palavra:\n"); fgets(string1, 128, stdin); *(strchr(string1, '\n')) = '\0';
Explique, passo a passo, o que faz a última linha *(strchr(string1, '\n')) = '\0'. Consute a documentação da função strchr aqui.
Exercício 2. Todos os programas abaixo têm um erro. Explique detalhadamente o erro e como consertá-lo. Você pode baixar o código fonte dos programas para testá-los aqui.
Programa 1
#include <stdio.h> int main(int argc, char **argv) { int i = 0; int j = 0; int contador = 0; for(i = 0; i < 10; i++) for(j = 0; j < 10; j++); contador++; printf("contador = %d\n", contador); printf("pressione qualquer tecla para terminar\n"); getc(stdin); return 0; }
Programa 2
#include <stdio.h> int main(int argc, char **argv) { int i; int soma; for(i = 0; i < 10; i++) { soma += 10; } printf("10 * 10 = %d\n", soma); printf("pressione qualquer tecla para terminar\n"); getc(stdin); return 0; }
Programa 3
#include <stdio.h> int main(int argc, char **argv) { char linha[128]; int num; int resto; printf("digite um numero:\n"); fgets(linha, 128, stdin); sscanf(linha, "%d\n", &num); resto = num % 2; if(resto = 0) { printf("num eh par\n"); } else { printf("num eh impar\n"); } printf("pressione qualquer tecla para terminar\n"); getc(stdin); return 0; }
Programa 4
#include <stdio.h> #include <string.h> int main(int argc, char **argv) { char string1[128]; char string2[128]; printf("digite uma palavra:\n"); fgets(string1, 128, stdin); *(strchr(string1, '\n')) = '\0'; printf("digite outra palavra:\n"); fgets(string2, 128, stdin); *(strchr(string2, '\n')) = '\0'; if(string1 == string2) { printf("strings %s e %s sao iguais\n", string1, string2); } else { printf("strings %s e %s sao diferentes\n", string1, string2); } printf("pressione qualquer tecla para terminar\n"); getc(stdin); return 0; }
Programa 5
#include <stdio.h> int main(int argc, char **argv) { int numbers[10]; int i; for(i = 0; i <= 10; i++) { numbers[i] = 0; } printf("pressione qualquer tecla para terminar\n"); getc(stdin); return 0; }
Programa 6
#include <stdio.h> int main(int argc, char **argv) { char palavra[128]; palavra[0] = 'b'; palavra[1] = 'a'; palavra[2] = 'n'; palavra[3] = 'a'; palavra[4] = 'n'; palavra[5] = 'a'; printf("{{{%s}}}\n", palavra); printf("pressione enter para terminar\n"); getc(stdin); return 0; }
Programa 7
#include <stdio.h> int main(int argc, char **argv) { char palavra[5] = "hello"; int i = -1; printf("%d {{{%s}}}\n", i, palavra); printf("pressione enter para terminar\n"); getc(stdin); return 0; }