Na linguagem C, uma string (ou cadeia de caracteres) é um vetor de caracteres em que o caractere nulo ('\0') é interpretado como fim da parte relevante do vetor.
Exemplo:
char *s;
s = malloc( 10 * sizeof (char));
s[0] = 'A';
s[1] = 'B';
s[2] = 'C';
s[3] = '\0';
s[4] = 'D';
Depois da execução desse fragmento de código, o vetor s[0..3] contém a cadeia de caracteres ABC. O caractere nulo marca o fim dessa cadeia. A porção s[4..9] do vetor é ignorada.
- Para determinar o tamanho de uma string use a função strlen( ). Esta função faz parte do arquivo de cabeçalho string.h. Sua sintaxe é:
Exemplo:
/* Determinando o tamanho de uma string usando
* a função strlen() */
#include <stdio.h>
#include <string.h>
int main()
{
char string[20];
printf("\n");
printf("Determinando o tamanho de uma string\n");
printf("------------------------------------\n");
printf("\n");
printf("Digite a string :");
scanf("%s",&string);
printf("\n");
printf("A string tem %d carateres.\n\n",strlen(string));
return(0);
}
- Para copiar uma string em outra use a função strcpy( ). Esta função faz parte do arquivo de cabeçalho string.h. Sua sintaxe é:
strcpy(destino, origem)Exemplo:/* Copiando uma string em outra usando a * função strcpy() */ #include <stdio.h> #include <string.h> int main() { char string1[10], string2[10]; printf("\n"); printf("Copiando uma string em outra\n"); printf("----------------------------\n"); printf("\n"); printf("Digite string1 :"); scanf("%s",&string1); printf("\n"); printf("string1 = %s\n",string1); printf("string2 = %s\n",strcpy(string2,string1)); return(0); }
Na prática, todo conteúdo de string2 é substituído por string1.
- Para unir duas strings use a função strcat( ). Esta função faz parte do arquivo de cabeçalho string.h. Sua sintaxe é:
strcat(destino, origem)Exemplo:/* Unindo duas strings usando a * função strcat() */ #include <stdio.h> #include <string.h> int main() { char string1[100], string2[10]; printf("\n"); printf("Unindo duas strings\n"); printf("-------------------\n"); printf("\n"); printf("Digite string1 :"); scanf("%s",&string1); printf("\n"); printf("Digite string2 :"); scanf("%s",&string2); printf("\n"); printf("Unindo string1 a string2 : %s\n\n",strcat(string2,string1)); return(0); }
Manipulando STRINGS
A Linguagem C não possui o tipo
de dado string, as strings em C são arrays de caracteres, além disso, não temos
como fazer operações básicas usando os operadores como, por exemplo, comparar
dois arrays usando o operador de igualdade como fazemos com o tipo inteiro. O
que temos na Linguagem C para trabalhar com strings é um conjunto de funções
que fazem essas operações. Para utilizar essas funções devemos sempre incluir o
arquivo de cabeçalho string.h em nossos programas.
Abaixo serão apresentadas algumas funções para manipulação de strings, assim
como a descrição e um exemplo do que cada função faz.
size_t strlen (const char *s)
Calcula o tamanho da string s.
#include <stdio.h>
#include <string.h>
int
main ()
{
char str[100] = { 0 };
int tam;
printf ("Entre
com uma frase (no máximo 100 caracteres) : ");
scanf ("%[^\n]", str);
tam = strlen (str);
printf ("A
string digitada tem %d caracteres\n", tam);
return 0;
}
char *strcpy (char *destino,
const char *origem)
A função strcpy copia a string origem para a string em destino.
#include <stdio.h>
#include <string.h>
int
main ()
{
char origem[100];
char destino[100];
printf ("Entre
com a string : ");
scanf ("%[^\n]", origem);
/* copia string */
strcpy (destino, origem);
printf ("Origem
: %s\n", origem);
printf ("Destino
: %s\n", destino);
return 0;
}
char *strncpy (char *destino,
const char *origem, size_t n)
A função strncpy copia no máximo n caracteres da string origem para a string
destino.
#include <stdio.h>
#include <string.h>
int
main ()
{
char *origem = "Manipulando Strings
em C!";
char destino[20];
/* copia string com até 19 caracteres
*/
strncpy (destino, origem, 19);
printf ("Origem
: %s\n", origem);
printf ("Destino
: %s\n", destino);
return 0;
}
char *strcat (char *s1, const
char *s2)
Concatena o conteúdo da string s2 em s1.
#include <stdio.h>
#include <string.h>
int
main ()
{
char s[100];
printf ("Digite
algo : ");
scanf ("%[^\n]", s);
/* concatena ... no final da string digitada */
strcat (s, "...");
printf ("%s\n", s);
return 0;
}
char *strncat (char *s1, const
char *s2, size_t n)
Concatena no máximo n caracteres da string s2 para o final da string s1.
#include <stdio.h>
#include <string.h>
int
main ()
{
char s1[100];
char *s2 = "..........";
printf ("Digite
algo : ");
scanf ("%[^\n]", s1);
/* Concatena 3 caracteres de s2 para o final de s1 */
strncat (s1, s2, 3);
printf ("%s\n", s1);
return 0;
}
int strcmp (const char *s1, const
char *s2)
Compara a string s1 com s2. A função retorna um int que será zero, caso s1 seja
igual s2, menor que zero, caso s1 seja menor que s2, maior que zero, caso s1
seja maior que s2.
#include <stdio.h>
#include <string.h>
int
main ()
{
char s1[100];
char s2[100];
int ret;
printf ("Digite
a string s1 : ");
scanf ("%[^\n]", s1);
fflush (stdin);
printf ("Digite
a string s2 : ");
scanf ("%[^\n]", s2);
ret = strcmp (s1, s2);
if (ret == 0)
{
printf ("As
strings digitadas são iguais\n");
}
else
{
printf ("As
strings digitadas são diferentes\n");
}
printf ("s1
= %s\n", s1);
printf ("s2
= %s\n", s2);
printf ("retorno
= %d\n", ret);
return 0;
}
int strncmp (const char *s1,
const char *s2, size_t n)
Compara até n caracteres da string s1 com s2. A função retorna um int que será
zero, caso s1 seja igual s2, menor que zero, caso s1 seja menor que s2, maior
que zero, caso s1 seja maior que s2.
#include <stdio.h>
#include <string.h>
int
main ()
{
char s1[100];
char s2[100];
int ret;
printf ("Digite
a string s1 : ");
scanf ("%[^\n]", s1);
fflush (stdin);
printf ("Digite
a string s2 : ");
scanf ("%[^\n]", s2);
/* Compara até os 3 primeiros caracteres */
ret = strncmp (s1, s2, 3);
if (ret == 0)
{
printf ("As
strings digitadas são iguais\n");
}
else
{
printf ("As
strings digitadas são diferentes\n");
}
printf ("s1
= %s\n", s1);
printf ("s2 = %s\n", s2);
printf ("retorno
= %d\n", ret);
return 0;
}
Nenhum comentário:
Postar um comentário