Escreva uma única instrução que possibilite a execução das tarefas a seguir. Suponha que as variáveis c (que armazena um caractere), x, y e z sejam do tipo int, as variáveis d, e e f sejam do tipo double, a variável ptr seja do tipo char * e os arrays s1[100] e s2[100] sejam do tipo char.
Passo 1
E aí meus queridos!! Tudo bem com vocês??
Hoje vamos falar sobre algumas funções que podem fazer muita diferença na hora de programar! Bora lá??
s) Vamos falar sobre a função sprintf. Essa função trabalha da seguinte maneira: ela envia valores apontados dentro da função para uma string.
Veja sua sintaxe: sprintf(string, “tipo dos valores a serem apontados”, valores).
Então para resolvermos nossa questão precisaríamos:
sprintf( s1, “%7d%7d%7d”, x, y, z );
Assim a string s1 passa a ter todos os valores de x, y e z.
Passo 2
t) a função strncat acrescenta o valor de uma string no final de outra.
Veja um exemplo: strncat(string destino, string enviada, quantidade de caracteres).
String destino – string que vai receber a outra string no final.
String enviada – a que será enviada para a string destino.
Quantidade de caracteres – a quantidade que será copiada. .
Então nossa questão ficaria assim:
strncat( s1, s2, 10 );
Passo 3
u) Mas e se quisermos saber quantos caracteres tem minha string? Bom, podemos usar a função strlen. Essa função retorna a quantidade de caracteres dentro da minha string e sua sintaxe é bem tranquila de lembrar:
strlen(string);
Moleza, não é mesmo?
Então agora podemos resolver nosso problema da seguinte maneira:
printf( “strlen(s1) = %u\n”, strlen( s1) );
Passo 4
v) Meu usuário escreveu um número e ele está como string, como podemos transformá-lo em inteiro para fazer operações com ele?
Bom, para isso temos a função atoi, que transforma sua string em um número inteiro. Sua sintaxe passa a ser assim: atoi(string);
Veja como ficaria nossa questão.
printf( “%d\n”, atoi( “-21” ) );
Passo 5
w) Precisamos atribuir a um ponteiro o primeiro token da string s2 que será separado por vírgula. A função token também possui uma sintaxe tranquila, observe: strtok(string, ‘caractere de separação’);
Portanto para resolver nossa questão ficaria assim:
ptr = strtok( s2, “,” );
Ufa... Acabamos por aqui!! Dê Ctrl+n no seu compilador e bora para o próximo exercício!!
Resposta
- sprintf( s1, “%7d%7d%7d”, x, y, z );
- strncat( s1, s2, 10 );
- printf( “strlen(s1) = %u\n”, strlen( s1) );
- printf( “%d\n”, atoi( “-21” ) );
- ptr = strtok( s2, “,” );