Jump to content
i307

Como saber onde acaba um vector de caracteres

Recommended Posts

i307

Estou a fazer um programa onde preciso de receber uma string e passá-la às funções a fim de efectuar operações.

Mas estou a receber isto como vector de caracteres pois depois preciso de comparar os valores.

Qual a melhor maneira de fazer o que pretendo?

int contar(char * v ){

    int i=0;

    while(v[i]=!'\0'){
        i++;
    }

    return i;
}

int main()
{
    int i=0 , n=0;
    char palavra[10];

    scanf("%s",&palavra);


    n=contar(palavra);

EDIT: Problema resolvido. 

char palavra[10] = "" ;

scanf("%s",palavra);

Share this post


Link to post
Share on other sites
Baderous

Não percebi qual a dúvida, mas relativamente ao teu código, quando se utiliza a função scanf para ler strings, não se usa o operador &, porque o nome da string já é ele próprio um apontador para a string (mais concretamente, para o seu 1º elemento).

Share this post


Link to post
Share on other sites
i307

Não percebi qual a dúvida, mas relativamente ao teu código, quando se utiliza a função scanf para ler strings, não se usa o operador &, porque o nome da string já é ele próprio um apontador para a string (mais concretamente, para o seu 1º elemento).

Mea culpa sim.

Já agora o código para saber onde acaba uma string para o problema ficar resolvido (apesar de não funcionar para um vector de caracteres)

int i=0;

    while(v[i]!='\0'){
        i++;
    }

    return i;

Share this post


Link to post
Share on other sites
i307

int n2=0;

    n2=n;

    while(n2=!0){

    if (v[i]%2==0){

como raio é que nesta passagem o n2 fica com o valor de 1 ?? (o valor de n era 5)  🤔

Share this post


Link to post
Share on other sites
falk0n

Coloca o programa que tens estado a desenvolver ou pelo menos essa parte para que se possa ver o código todo. Se tem o valor 5 é que inseriste uma palavra com esse número de caracteres. Se puderes mostrar o código mais fácilmente serás ajudado.

Boas programações

Share this post


Link to post
Share on other sites
i307

Coloca o programa que tens estado a desenvolver ou pelo menos essa parte para que se possa ver o código todo. Se tem o valor 5 é que inseriste uma palavra com esse número de caracteres. Se puderes mostrar o código mais fácilmente serás ajudado.

Boas programações

Eu pus a parte toda que interessava, eu estava a fazer watch da varável 'n' e era ali que ela ficava com o valor de 1 (depois de receber o valor 5 do 'n'). Mas agora já não preciso de usar uma variável temporária para o 'n' , portanto.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.