首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何忽略字符数组中的某些字母和空格

如何忽略字符数组中的某些字母和空格
EN

Stack Overflow用户
提问于 2016-05-04 07:41:25
回答 4查看 322关注 0票数 0

试图做一个其他的声明,去掉所有其他字母和空格,然后是我想要的。此功能是将用户输入的字母更改为其他字母。

代码语言:javascript
复制
using namespace std;
    void dna_to_rna(char rna[]) 
    {
        for (int i = 0; i < 100; i++)
        {
            if (rna[i] == 'a' || rna[i] == 'A')
                rna[i] = 'U';
            else if (rna[i] == 'c' || rna[i] == 'C')
                rna[i] = 'G';
            else if (rna[i] == 'g' || rna[i] == 'G')
                rna[i] = 'C';
            else if (rna[i] == 't' || rna[i] == 'T')
                rna[i] = 'A';
}

other语句应该是什么样子才能删除所有其他字符呢?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2016-05-07 05:13:41

我创建了第二个数组,只要我所寻找的信息符合必要的条件,我就将其放入第二个数组中,通过创建第二个变量来计算数组中的正确位置,从而确保将其放置在数组中的位置总是正确的,然后是cout数组。

代码语言:javascript
复制
using namespace std;
    void dna_to_rna(char rna[])
    {
        int x = 0;
        char newrna[100];
        for (int i = 0; i < 100; i++)
        {
            if (rna[i] == 'a' || rna[i] == 'A')
            {
                newrna[x] = 'U';
                x++;
            }
            else if (rna[i] == 'c' || rna[i] == 'C')
            {
                newrna[x] = 'G';
                x++;
            }
            else if (rna[i] == 'g' || rna[i] == 'G')
            {
                newrna[x] = 'C';
                x++;
            }
            else if (rna[i] == 't' || rna[i] == 'T')
            {
                newrna[x] = 'A';
                x++;
            }
        }
票数 0
EN

Stack Overflow用户

发布于 2016-05-04 08:09:04

也许是这样的:

代码语言:javascript
复制
using namespace std;
void dna_to_rna(char rna[]) 
{
    string s = "";
    for (int i = 0; i < 100; i++)
    {
        if (rna[i] == 'a' || rna[i] == 'A')
            s += 'U';
        else if (rna[i] == 'c' || rna[i] == 'C')
            s += 'G';
        else if (rna[i] == 'g' || rna[i] == 'G')
            s += 'C';
        else if (rna[i] == 't' || rna[i] == 'T')
            s += 'A';
     }
     strcpy(rna, s.c_str());
}

这样做的目的只是使用std::string作为临时缓冲区。开始时字符串是空的。然后你一个接一个地添加你想要的字符。当循环完成时,将std::string的内容复制回rna-数组。

票数 1
EN

Stack Overflow用户

发布于 2016-05-04 08:13:27

如果可以将输入参数更改为std::string,则可以使用以下实现之一:

代码语言:javascript
复制
void dna_to_rna(std::string& rna)
{
    auto it = rna.begin();
    while (it != rna.end())
    {
        if      (*it == 'a' || *it == 'A') *it = 'U';
        else if (*it == 'c' || *it == 'C') *it = 'G';
        else if (*it == 'g' || *it == 'G') *it = 'C';
        else if (*it == 't' || *it == 'T') *it = 'A';
        else
        {
            it = rna.erase(it);
            continue;   // it already "points" to the next element
        }

        ++it;
    }
}

std::string dna_to_rna(const std::string& dna)
{
    std::string rna;
    for (auto c : dna)
    {
        if      (c == 'a' || c == 'A') rna += 'U';
        else if (c == 'c' || c == 'C') rna += 'G';
        else if (c == 'g' || c == 'G') rna += 'C';
        else if (c == 't' || c == 'T') rna += 'A';
    }

    return rna;
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37021428

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档