Week 9, Assignment 2
7 views (last 30 days)
Show older comments
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, the number of characters found. If the file is not found or character is not a valid char, the function return -1. As an example, consider the following run. The file "simple.txt" contains a single line: "This file should have exactly three a-s...
function charnum=char_counter(fname,a)
fid=fopen(fname,'rt');
if fid<0
charnum=-1;
fprintf('error\n');
return;
end
if ischar('a')==0
return;
end
if fid>0 && ischar(a)
line=fgets(fid);
n=0;
for n=n+count(line,a)
end
charnum=n;
else charnum=-1;
end
if ischar(a)==0
charnum =-1;
elseif charnum==0
charnum=0;
return;
end
fclose(fid);
why second error is coming?

6 Comments
Steven Lord
on 19 Aug 2019
Why is the space character not a valid character? Nothing in the text of the assignment that you've posted says it's invalid.
By the way, I agree with Guillaume that a == ' ' is a clearer statement of intent. Calling the isspace function is even clearer, though it may be a little more permissive about what's a space than you want (are tab, line feed, or newline spaces? They are to isspace.)
Answers (1)
Raheem Ullah
on 17 Aug 2022
function charnum=char_counter(fname,character)
fid=fopen(fname,'rt')
n=0
p=ischar(character)
if(fid<0 || p==0)
charnum=-1
return
else
oneline=fgets(fid)
while ischar(oneline)
for ii=1:length(oneline)
if(oneline(ii)==character)
n=n+1
end
end
oneline=fgets(fid)
end
end
charnum=n;
fclose(fid);
end

0 Comments
See Also
Categories
Find more on Logical in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!