ricardoneves93 Posted February 25, 2013 at 11:13 PM Report #497003 Posted February 25, 2013 at 11:13 PM 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 http://www.speedtest.net/result/2682095343.png
HappyHippyHippo Posted February 25, 2013 at 11:20 PM Report #497007 Posted February 25, 2013 at 11:20 PM (edited) 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 ... Edited February 26, 2013 at 12:19 AM by HappyHippyHippo IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
ricardoneves93 Posted February 25, 2013 at 11:42 PM Author Report #497018 Posted February 25, 2013 at 11:42 PM (edited) 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 Edited February 25, 2013 at 11:43 PM by ricardoneves93 http://www.speedtest.net/result/2682095343.png
HappyHippyHippo Posted February 26, 2013 at 12:20 AM Report #497021 Posted February 26, 2013 at 12:20 AM #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 Portugol Plus
ricardoneves93 Posted February 26, 2013 at 11:08 AM Author Report #497033 Posted February 26, 2013 at 11:08 AM Funciona perfeitamente, obrigado 😉 http://www.speedtest.net/result/2682095343.png
ralmeidasantos Posted February 26, 2013 at 03:30 PM Report #497071 Posted February 26, 2013 at 03:30 PM Ricardo coloca isto como tópico resolvido HTML Master The programs change the world
Guest Markito Posted February 27, 2013 at 09:16 PM Report #497318 Posted February 27, 2013 at 09:16 PM Como é que se coloca um tópico como resolvido? Para eu dar conta dos meus, por favor...
thoga31 Posted February 27, 2013 at 09:35 PM Report #497321 Posted February 27, 2013 at 09:35 PM Na parte de cima tens um botão "Ferramentas do Autor", e lá está a marcação do tópico como resolvido. Mas um moderador já o marcou, pois já está no título "[Resolvido]". Knowledge is free!
Guest Markito Posted March 4, 2013 at 10:56 PM Report #497946 Posted March 4, 2013 at 10:56 PM Obrigado. Só hoje vi a tua resposta.
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now