Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Bom dia
Tenho uma variavel com valor q é um caracter, eu queria colocar em um laço e no final do laço acrescentar mais um caracter para que na proxima vez q ele rodar aparece dois caracteres, depois tres, quatro e assim por diante ate finalizar o laço
int i;
char j;
j = '*';
for(i=1;i<=5;i++)
{
printf(j,"\n");
}
j = j + ''; //aqui eu queria incrementar mais um "" para mostrar dois, tres ... ate cinco "*"
a ideia é mostrar isso no final:
*
**
***
****
*****
Quando eu rodei esse codigo apareceu varios caracteres diferentes, acredito que isso ocorreu porque ele deve somar o valor do caracter dando origem a outro, tipo o caracter '*' na tabela ascii equivale a 42, entao ele soma 42 + 42 = 84 e mostra outro caracter.
Então é possivel fazer isso em C?
Bom dia eu usei loop pra resolver, fiz assim:
#include <stdio.h>
#include <stdlib.h>
main() {
int i, j;
for(i = 0; i <= 5; i++)
{
for(j = 1; j<= i; j++) {
printf("*");
}
printf("\n");
}
system("pause");
}
O q eu queria mesmo é saber se em linguagem c é possivel somar caracteres?
tipo ( A + A = AA ), mas não é o que ocorre, como eu disse no topico.
Diretamente não é possível. Pode-se usar a função strcat.
A soma está definida para caracteres, mas, como você mesmo diz ter notado, simplesmente resulta na soma dos valores (numéricos) de cara um - caracteres em C são ints garantidamente armazenáveis em objetos de tipo char. Em C, não existe uma operação que define concatenação de caracteres.
quidjos nem mesmo usando a função strcat que o BheringJoao mencionou?
Caso seja possivel com essa funçao como seria o codigo na parte em que vai incrementando os caracteres?
#include<stdio.h>
#include<sting.h> /biblioteca da função strcat()/
main()
{
char a[50]="*", b[50]="*";
int i;
for(i=1;i<=5;i++)
{
printf("%c\n",a);
strcat(a=a+B); /*seria isso???*/
}
}
Imaginei assim mas nao tenho como testar aqui entao nao sei qual sera o resultado (apesar de eu esperar um erro).
Ou realmente nao tem como?
Não. Seria possível verificar que esta tentativa está errada analisando o protótipo da strcat. Ela recebe 2 argumentos, que devem ambos ser ponteiros para char. Uma atribuição não tem sentido aí. strcat, como o nome sugere, opera sobre representações abstratas de strings.
A intenção sua é usar strings, que são conjuntos de caracteres. Procure estudar sobre vetores e strings para utilizar esse tipo de coisa com um limite no número de caracteres. Aí a função strcat() seria válida.
Se deseja tornar essa string sem limites, terá que usar alocação dinâmica, o que é uma coisa bem avançada da C, então a masterize antes e contente-se com um limite alto, porém que não tenha tanto desperdício de memória, para depois se aventurar por mares mais avançados.
Abraços :D
Acho que isso resolve o problema:
Usando recursividade:
#include <stdio.h>
#include <stdlib.h>
bool escreve(char j, int n, int x) {
Apenas com loops:
#include <stdio.h>
#include <stdlib.h>
main() {