Info
Questa domanda è chiusa. Riaprila per modificarla o per rispondere.
Homework: Write a function called char_counter that counts the number of a certain character in a text file.
1 visualizzazione (ultimi 30 giorni)
Mostra commenti meno recenti
Write a function called char_counter that counts the number of a certain character in a text file.
The function takes two input arguments, fname, a char vector of the filename and character, the char it counts in the file. The function returns charnum.
function charnum = char_counter(fname,character)
fid = fopen(fname,'rt');
if fid < 0 || ~ischar(character) || ~ischar(fname) || length(fname)==0 || length(character)==0 || isempty(fname) || isempty(character)
charnum=-1;
else
l=[];
oneline = fgets(fid);
while ischar(oneline)
l=oneline;;
oneline = fgets(fid);
end
z=count(l,character);
if z>0
charnum=z
else
charnum=-1;
end
end
I'm getting an error for test for all visible characters.
Assessment result: incorrectTest with all visible characters
Variable charnum has an incorrect value.
When testing with ' ' your solution returned 1 which is incorrect. (75444)
4 Commenti
Image Analyst
il 25 Mag 2020
I still think my answer is better:
charnum = char_counter('textData.txt', 'Ekt')
function charnum = char_counter(fname, character)
str = fileread(fname); % Read entire file into a string.
% Count the number of EACH specified character in the file.
charnum = zeros(1, length(character));
for k = 1 : length(character)
charnum(k) = sum(str == character(k));
fprintf('Found %d %c.\n', charnum(k), character(k));
end
end
Risposte (5)
Image Analyst
il 24 Dic 2019
Hint:
str = fileread('whatever.txt') % Read entire file into a string.
% Count the number of L's in the file
count = sum(str == 'L')
0 Commenti
Muhammad Sameer Malik
il 13 Mag 2020
function charnum=char_counter(fname,character)
charnum=0;
fid=fopen(fname,"rt");%opens file
if fid<0 || ~ischar(character) %check if file not found or character is not a char
charnum=-1;
return
end
oneline=fgets(fid);
while ischar(oneline)
for x=1:length(oneline)
%compare whether 'character' and words from line are same
if strcmp(oneline(x),character)==true
charnum=charnum+1;
end
end
oneline=fgets(fid);
end
6 Commenti
Image Analyst
il 20 Giu 2020
But why even bother with all this stuff when my code above gives you the answer in 2 simple lines of code?
ARUNAVA
il 29 Mag 2020
function charnum=char_counter(fname,character)
fid=fopen(fname,'rt');
if fid<0 || ~ischar(character)
charnum=-1;
return;
end
x=fscanf(fid,'%c');
charnum=length(find(x==character));
end
0 Commenti
Randall Ang
il 5 Giu 2020
This is my solution, u can take a look for other alternatives.
function charnum = char_counter(fname,character)
%fname - char vector of the filename
%character - char it counts in the file
%charnum - number of characters found
%if file is not found / character is not valid, charnum = -1
fid = fopen(fname, 'rt'); %open file to read text file
if fid>0 & ischar(character)
fline = fgets(fid);
k = 0;
while ischar(fline)
for i = 1:length(fline)
if fline(i) == character
k = k + 1;
end
end
fline = fgets(fid);
end
charnum = k;
else
charnum = -1;
end
0 Commenti
Sakib Javed
il 26 Giu 2020
function charnum = char_counter(fname,character)
fid = fopen(fname,'rt');
if fid < 0 || ~ischar(character)
charnum = -1;
return
end
oneline = fgets(fid);
n = 0;
while ischar(oneline)
for ii = 1:length(oneline)
if oneline(ii) == character
n = n+1;
end
end
oneline = fgets(fid);
end
charnum = n;
fclose(fid);
end
1 Commento
Walter Roberson
il 26 Giu 2020
if the file is valid but the other parameter is not a valid character then you leave the file open when you return
Questa domanda è chiusa.
Vedere anche
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!