Need matlab coding for the given c program

2 visualizaciones (últimos 30 días)
leo john
leo john el 30 de Mzo. de 2020
Comentada: leo john el 18 de Abr. de 2020
#include <stdio.h>
int main()
{
char a[100];
int i;
i=0;
scanf("%c",&a[i]);
while(a[i]!='$')
{
i++;
scanf("%c",&a[i]);
}
a[i]='\0';
i=0;
while(a[i]!='\0')
{
printf("%c",a[i]);i++;
}
return 0;
}
  3 comentarios
leo john
leo john el 30 de Mzo. de 2020
Kindly compile it online compiler it will work.input is type any text or line until dollar sign is given it will display the same text .similar coding is needed in matlab
James Tursa
James Tursa el 31 de Mzo. de 2020
@darova: The scanf line is assigning a value to a[i]

Iniciar sesión para comentar.

Respuestas (2)

darova
darova el 30 de Mzo. de 2020
try this
i = 1;
a{1} = '1';
while ~strcmp(a(i),'&')
str = input('','s');
i = i + 1;
a{i} = str;
end
  6 comentarios
Walter Roberson
Walter Roberson el 18 de Abr. de 2020
Note that using input() like that is not the same as the C code. The C code retrieves one character at a time from standard input, and finds the first '$' character, leaving standard input positioned immediately after the '$'. The loop with input() on the other hand does the equivalent of getline() each time and checks whether the input line has at least one '$' character. This is a very different requirement.
Remember, input() with 's' option fetches a line. You store the entire line into a{i}. You then test whether that entire line ~= '$', which is a vector test. The test fails if any element of the vector is 0, which would occur if any element of a{i} did equal '$'
leo john
leo john el 18 de Abr. de 2020
Yes single line text should be terminated only by $ sign that is the program not by zero vector.Else err msg will be given

Iniciar sesión para comentar.


Walter Roberson
Walter Roberson el 31 de Mzo. de 2020
MATLAB cannot code that. scanf() reads from standard input, but MATLAB does not have standard input.
If you had a fileid of an opened file, then
s = fscanf(fid, '%c%[^$]$', 2);
fprintf('%s', s);
This has the same behaviour as the C code: it extracts at least one character, and up to but excluding a $ character, and consumes the $ character leaving the pointer right after it; and it outputs the extracted string to the display without any newline.

Categorías

Más información sobre MATLAB Report Generator en Help Center y File Exchange.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by