Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

ricardoneves93

[Resolvido] printf()

Mensagens Recomendadas

ricardoneves93

Boa noite estou com uma pequena duvida, imaginemos que tenho char* nome = {"Ricardo"}, como posso fazer um printf que apenas me imprima os ultimos 4 caracteres "ardo", já estive á procura mas só encontro para imprimir os primeiros n caracteres, alguém me pode esclarecer?

Cumprimentos Ricardo

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
HappyHippyHippo

tens de saber quantos caracteres tem a string:

#include <string.h>

// ...

char* nome = "Ricardo";
printf("%s\n", &nome[5]);

os : fiz copy paste do que tinhas e nem tinha pensado no que fiz ...

Editado por HappyHippyHippo

IRC : sim, é algo que ainda existe >> #p@p

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
ricardoneves93

Resolveu-me o problema mas surgiu-me outro é assim eu estou a programar para linux, e quero aceder ás variáveis de ambiente e ver a variavel de ambiente que corresponde ao utilizador que é do tipo "USER=nome", eu sei que as variáveis de ambiente estão guardadas em envp, o que é pretendido que o programa faça é imprimir "Hello nome", o problema é que como eu fiz funciona para o meu nome de utilizador que tenho neste computador, porém se for um nome de utilizador que tenha um numero diferente de letras do meu já não vai funcionar a 100%. Alguma dica? Junto mando o meu código em c

#include <stdio.h>
#include <string.h>
int main(int argc, const char* argv[], char* envp[])
 {
if(argc == 1)
{
 int i, result;
 char* user[]={"USER="};
 char* p;
 for(i=0; envp[i]!=NULL; i++)
 {
  result = strncmp(user[0],envp[i],5);
  if (result == 0)
  {
  printf("Hello ");
  p = envp[i];
  printf("%s", &p[strlen(p) - 7]);
  printf(" !\n");
  break;
  }
 }

}

return 0;
 }

Basicamente queria imprimir do = para a frente até os caracteres acabarem se se pode dizer assim

Editado por ricardoneves93

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
HappyHippyHippo
#include <stdio.h>
#include <string.h>
int main(int argc, const char* argv[], char* envp[])
{
 int i, result;
 char* user[]={"USER="};
 char* p;

 if(argc == 1)
 {
   for(i=0; envp[i]!=NULL; i++)
   {
     result = strncmp(user[0],envp[i],5);
     if (result == 0)
     {
       printf("Hello ");
       p = envp[i];
       printf("%s", &p[5]);
       printf(" !\n");
       break;
     }
   }
 }

 return 0;
}


IRC : sim, é algo que ainda existe >> #p@p

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.