Need matlab coding for the given c program
Ältere Kommentare anzeigen
#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 Kommentare
darova
am 30 Mär. 2020
You are declaring a variable but not assigning any value (no initialization). How should it work?

leo john
am 30 Mär. 2020
James Tursa
am 31 Mär. 2020
@darova: The scanf line is assigning a value to a[i]
Antworten (2)
darova
am 30 Mär. 2020
try this
i = 1;
a{1} = '1';
while ~strcmp(a(i),'&')
str = input('','s');
i = i + 1;
a{i} = str;
end
6 Kommentare
leo john
am 31 Mär. 2020
leo john
am 31 Mär. 2020
darova
am 31 Mär. 2020
Use strfind
while ~isempty(strfind((a{i},'&')))
leo john
am 18 Apr. 2020
Walter Roberson
am 18 Apr. 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
am 18 Apr. 2020
Walter Roberson
am 31 Mär. 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.
Kategorien
Mehr zu MATLAB Report Generator finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!