【发布时间】:2014-01-16 17:42:39
【问题描述】:
我对 C 很陌生,作为我任务的一部分,我必须使用 fgets() 删除在字符串末尾添加的换行符。
我的讲师建议采用这种方法:
char names[20];
fgets(names,20,fp);
names[strlen(names)-1]='\0';
我省略了一些代码,因为我只是在演示方法。
但是,在我们的任务中,我们必须处理字符串数组。 我试过了……
names[strlen(names[i])-1]='\0';
但似乎只找到字符串的长度,减去 1,然后在索引中使用该数字,然后将字符串设置为数组的下方 \0
有没有办法访问字符串的各个字符?
我知道我可以使用
names[i] // where i is the numeric index
但我需要访问该字符串中的各个字符。
这是我第一次在 StackOverflow 上发帖,如果我没有提供足够的详细信息或我的问题的格式不正确,请通知我。
提前致谢。
【问题讨论】:
-
names[i][strlen(names[i])-1]='\0';,names[i][index] -
@BLUEPIXY 将其作为答案发布。
-
您的教师代码不会严格删除换行符。如果您有兴趣,请参阅下面@erosenin 正确答案中的评论。