Não consigo usar biblioteca string.h

1. Não consigo usar biblioteca string.h

Lucas dos Santos Lima
LuksSant

(usa Linux Mint)

Enviado em 28/05/2019 - 10:53h

Olá pessoal. Estou com o seguinte problema, quando vou utilizar a biblioteca string.h no programa e executa-lo no terminal, simplesmente não reconhece algumas funções. Já pesquisei e não encontrei nenhum artigo (em inglês, português e hindi) que confirmasse que alguma função tivesse sido descontinuada, segue a lista das que estou tetando utilizar:
stricmp
strpal
strlwr
strupr

o programa que estou tentando implementar é para identificar se uma string digitada é ou não palíndroma, mas infelizmente não estou conseguindo, nem logicamente e nem pelo uso de função da biblioteca.
Segue o código:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define MAX 10

char Converte(char str2[], char str1[]){
int i, len;
char aux[MAX];
//inverte string
for(i=0, len=strlen(str2) ; i<len ; i++, len--){
aux[i]=str2[len];
}
//compara posição alfabética
if (strcoll(str1,str2)==0)
return 0;
else
return 1;
}
int main(){
char str1[MAX], str2[MAX];
printf("Digite uma palavra: ");
fgets(str1 , MAX , stdin);
//copia string
strcpy(str2,str1);
//analisa retorno
Converte(str2, str1);
if(0)
printf("Sim.\n");
else if(1)
printf("Nao.\n");
return 0;
}


  


2. Re: Não consigo usar biblioteca string.h

Paulo
paulo1205

(usa Ubuntu)

Enviado em 28/05/2019 - 15:12h

LuksSant escreveu:

Olá pessoal. Estou com o seguinte problema, quando vou utilizar a biblioteca string.h no programa e executa-lo no terminal, simplesmente não reconhece algumas funções. Já pesquisei e não encontrei nenhum artigo (em inglês, português e hindi) que confirmasse que alguma função tivesse sido descontinuada, segue a lista das que estou tetando utilizar:
stricmp
strpal
strlwr
strupr


Nenhuma dessas funções jamais fez parte da biblioteca padrão do C. Uma implementação ou outra (Microsoft, Borland etc.) pode ter (ou ter tido) tais funções, mas elas nunca foram universalmente disponíveis nem padronizadas.

Quanto a strcoll(), você deveria ajustar o locale antes de a invocar. Caso contrário, o locale usado será o padrão do C, que reconhece apenas caracteres do ASCII (logo, nada de acentos, por exemplo) e limita muitíssimo o reconhecimento de classes de caracteres e operações como ordenação alfabética (inclusive, tratando letras maiúsculas como vindo antes de qualquer letra minúsculas, de modo que 'Z'<'a' é verdadeiro).


... “Principium sapientiae timor Domini, et scientia sanctorum prudentia.” (Proverbia 9:10)






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts