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;
}