【问题标题】:Playing with strings in C [closed]在 C 中玩弦乐 [关闭]
【发布时间】:2014-02-20 19:56:15
【问题描述】:

下面是一个文件的输入,我将其作为通过重定向的标准输入用于 C 程序。如何从>$ 开始跳过行,并在string 中获取类似于从MNLQRF.. 开始的输入,该字符串将是动态的长度

>pair 1
MNLQRFPRHPLTFGPTPIQPLKRLSAHLGGQVELYAKREDCNSGLAFGGNKTRKLEYLIP
EALAQGCDTLVSIGGIQSNQTRQVAAVAAHLGMKCVLVQENWVNYSDAVYDRVGNIEMSR
ILGADVRLDAAGFDIGIRPSWEQAMADVRAAGGKPFPIPAGCSEHRLGGLGFVGFAEEVR
AQEAELGFKFDYIVVCSVTGSTQAGMVVGFAADGRAERVIGIDASAKPEQTHAQILRIAQ
NTAELVGLGREITAQDVVLDTRYGGPEYGLPSEGTLEAIRLCARQEGMLTDPVYEGKSMH
GMIDKVKRGEFPAGSRVLYAHLGGVPALNAYSFLFRNG
$
MMRGFKQRLIKKTTGSSSSSSSKKKDKEKEKEKSSTTSSTSKKPASASSSSHGTTHSSAS
STGSKSTTEKGKQSGSVPSQGKHHSSSTSKTKTATTPSSSSSSSRSSSVSRSGSSSTKKT
SSRKGQEQSKQSQQPSQSQKQGSSSSSAAIMNPTPVLTVTKDDKSTSGEDHAHPTLLGAV
SAVPSSPISNASGTAVSSDVENGNSNNNNMNINTSNTQDANHASSQSIDIPRSSHSFERL
PTPTKLNPDTDLELIKTPQRHSSSRFEPSRYTPLTKLPNFNEVSPEERIPLFIAKVDQCN
TMFDFNDPSFDIQGKEIKRSTLDELIEFLVTNRFTYTNEMYAHVVNMFKINLFRPIPPPV
NPVGDIYDPDEDEPVNELAWPHMQAVYEFFLRFVESPDFNHQIAKQYIDQDFILKLLELF
DSEDIRERDCLKTTLHRIYGKFLSLRSFIRRSMNNIFLQFIYETEKFNGVAELLEILGSI
INGFALPLKEEHKVFLVRILIPLHKVRCLSLYHPQLAYCIVQFLEKDPLLTEEVVMGLLR
YWPKINSTKEIMFLNEIEDIFEVIEPLEFIKVEVPLFVQLAKCISSPHFQVAEKVLSYWN
NEYFLNLCIENAEVILPIIFPALYELTSQLELDTANGEDSISDPYMLVEQAINSGSWNRA
IHAMAFKALKIFLETNPVLYENCNALYLSSVKETQQRKVQREENWSKLEEYVKNLRINND
KDQYTIKNPELRNSFNTASENNTLNEENENDCDSEIQ
$$

所以这就像将MNLQRF..MMRGFKQ.. 读入两个不同的字符串,忽略所有其他噪声数据。 请帮忙!!

【问题讨论】:

  • 编写一些代码,然后返回该代码的特定问题。我们不是来为您编写代码的。顺便说一句,如果你是血统的开发者 - 证明它
  • 哈哈.. 我喜欢这个嘲讽。等待!将分享我所写的内容。

标签: c string input char scanf


【解决方案1】:

使用fgets() 开始读取文件的每一行,去掉前导和任何尾随空格。如果第一个字符是> & $,则继续阅读下一行。

编辑:

char input[100]; // YOu can decide on the size of line
if (fgets(input, sizeof input, stdin) == NULL) {
  ;  // handle EOF
}

【讨论】:

  • 同样的疑问。这是标准输入。 fgets 将如何工作?它的参数中有文件指针,对吧?
  • fgets(buffer, size, stdin) 会起作用吗?
  • 工作。谢谢 :) 不过,提出这样的疑问是可耻的。我很喜欢这个论坛,因为它有非常有才华的人来帮助解决僵局:)
  • @DeveloperbyBlood 是的。但看看编辑的答案。
【解决方案2】:
  1. 使用fgets()(或在POSIX 系统上可选readline())读取每一行。
  2. 查看所读行的第一个字符,然后决定是否注意。

没有标准的 C 函数会根据行的第一个字符跳过行。

【讨论】:

  • 但这是标准输入。 fgets 将如何工作?它的参数中有文件指针,对吧?
  • 使用fgets(buffer, sizeof(buffer), stdin) 使用fgets() 读取stdin(又名标准输入)。您可以使用fprintf(stdout, ...) 打印到标准输出,虽然这通常被认为是不正当的,但是您必须使用fprintf(stderr, ...) 打印到标准错误。标准输入的情况类似。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-06-19
  • 1970-01-01
  • 1970-01-01
  • 2015-07-12
  • 1970-01-01
相关资源
最近更新 更多