Jump to content
EduardoLenz

Converter um caractere de várias letras em uma STRING

Recommended Posts

Olá, pessoal,

 

Mexo com microcontroladores, antigamente com PIC e agora com ARM (plataforma LPCXpresso). 

Ambos utilizam a linguagem C. 

 

Meu problema é o seguinte: Preciso converter um caractere que vem da UART (porta de comunicação). No PIC havia uma função pronta para tal, no ARM não. 

 

O caractere chega assim, por exemplo: P123 (tudo junto), e eu queria separar em:

dado_recebido[]={'P', '1', '2', '3'}; 

Para poder utilizar um switch 

switch(dado_recebido[0])

{

case 'P':....

}

 

alguém tem alguma ideia de como posso fazer a conversão? 

 

Agradeço desde já. 

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

  • Similar Content

    • By Izaac Borges
      Boa noite, me chamo Izaac Borges, acabei de começar aqui. Eu estava procurando um fórum de tecnologia onde eu pudesse encontrar gente disposta a me dar algumas dicas. Estou começando a programar agora, sempre gostei da ideia de programar, já tive algumas experiencias programando código para ,Arduíno coisas bem básicas mas agora estou estudando para valer e escolhi a linguagem C para começar pois já conhecia um pouco dela.
       
      Porem agora estou querendo fazer um sistema simples, onde ele armazena os seus dados(no caso seriam números de jogos da loteria) e  depois você insere os números sorteados e ele diz quantos acertos você fez em cada jogo. Gostaria de saber se é possível fazer esse tipo de programa em C e se eu iria precisar de alguma outra tecnologia para banco de dados, se sim qual tecnologia recomendam para quem está iniciando e quer aprender fazendo pequenos projetos como esse.
    • By vitorianatalia
      Sou iniciante em linguagem C e estou tentando resolver um exercício, mas não estou conseguindo. O enunciado é: 
      Considerando a fórmula para o cálculo da distância entre dois pontos (x1, y1) e (x2, y2): a) Escreva uma função que receba como parâmetros as coordenadas de dois pontos e retorne a distância entre eles. b) Escreva um programa em C (função principal) que capture do teclado as coordenadas dos 3 vértices de um triângulo, calcule e imprima o perímetro deste triângulo, chamando a função anterior. c) Teste seu programa, simulando sua execução com as seguintes coordenadas: (4,1), (1,1), (4,5).
       
      Para resolver a a), simplesmente não conseguia nomear g como distancia que dava erro lvalue required as left operand of assignment. Para b), sei que preciso rodar a função distancia para obter os resultados de 3 contas diferentes, mas como consigo armazenar isso para somar em main depois?

       
      #include <stdio.h> #include <stdlib.h> #include <math.h> float distancia (float xa, float xb, float ya, float yb, float g) {     g = sqrt(pow((xb-xa),2)+pow((yb-ya),2));     return g; } int main() {     float x1, x2, y1, y2, g;     // distancia entre dois pontos      printf("Insira valor de x1 e x2: \n");     scanf("%f %f", &x1, &x2);     printf("Insira valor de y1 e y2: \n");     scanf("%f %f", &y1, &y2);     printf("A distancia entre os dois pontos e: %f", distancia(x1, x2, y1, y2, g));         return 0; }  
    • By CiCLON3
      Preciso criar um programa que faça 3 execuções:
      A soma de todos os números pares não primos que antecedem N; A soma de todos os números ímpares não primos que antecedem N; A soma de todos os números primos que antecedem N.    Mas não sei como, sei imprimir os primos, pares e impares ate n, mas fazer a soma não.
    • By cris4ds
      Olá pessoal tudo bem? Bom, sou nova em programação com C e preciso fazer um programa que leia um número pelo teclado e o usuário deve informar se o número é em segundos, minutos ou horas. Se for em segundos, o programa deve mostrar eles convertidos em minutos e horas, se for em minutos deve mostrar eles em segundos e horas, e se for em horas deve mostrar em segundos e minutos. 
      tentei dessa maneira, mas não sei como colocar um variável char dentro de uma condição [if/else]. 
      aqui esta o código:
      #include<stdio.h> #include<stdlib.h> int main(){ int valor, h, m, s; char usu = '?'; printf("Digite um valor: "); scanf("%d", &valor); printf("O valor digitado corresponde a horas[h], minutos[m] ou segundos: "); scanf("%c", &usu); h = valor/3600; m = (valor%3600)/60; s = valor%60; if(strcmp(usu, "h")== 0){ printf("Você escolheu HORAS."); printf("O valor digitado corresponde a %d minutos e %d segundos.", m, s); }else{ if(strcmp(usu, "m")== 1){ printf("Você escolheu MINUTOS."); printf("O valor digitado corresponde a %d horas e %d minutos.", h, s); }else{ if(strcmp(usu, "s")== 2){ printf("Você escolheu SEGUNDOS."); printf("O valor digitado corresponde a %d horas e %d minutos.", h, m); }else{ } } } getchar(); }  
    • By Dan Borges
      Olá,
       
      Tenho conhecimentos em C#, e ultimamente venho programando utilizando o MonoGame para desenvolver jogos. Estava procurando como é feito uma pista pseudo 3D, e achei esse artigo em JS: https://codeincomplete.com/posts/javascript-racer-v1-straight/
       
      Por ter a lógica de programação da mente, mesmo sem saber js, entendi parte do código, mas esse trecho, não:
      segments = []; for(var n = 0 ; n < 500 ; n++) { // arbitrary road length segments.push({ index: n, p1: { world: { z: n *segmentLength }, camera: {}, screen: {} }, p2: { world: { z: (n+1)*segmentLength }, camera: {}, screen: {} }, color: Math.floor(n/rumbleLength)%2 ? COLORS.DARK : COLORS.LIGHT }); } A primeira vista entendi que ele está adicionando valores ao array segments com o método push. Mas, os valores colocados, não fazem sentido para mim.
      É como se fosse criada uma classe dinamicamente (que contenha as variáveis:, index, p1, p2...) sem precisar declará-la.
      Seria basicamente isso? Ele criou um objeto que representa uma classe, mas sem nomeá-la, ou algo semelhante?
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.