首页 > 解决方案 > 如何在字符串中复制一个字母?

问题描述

我想编写一个程序,在其中复制给定字符串中的每个字母。

例如,如果输入是,abc那么输出将是aabbcc

我怎样才能做到这一点?

到目前为止,这是我的代码。它只复制字符串:

#include <stdio.h>

int main () {
    char str_in[100];
    char str_out[200] = "";
    int i;

    printf("Enter a word: ");
    scanf("%s", str_in);

    for (i = 0; i < sizeof(str_in); i++) {
        str_out[i] += str_in[i];
    }

    printf("Duplicated word: %s", str_out);

    return 0;
}

标签: cloopsfor-loopc-strings

解决方案


对于初学者,目标字符数组应至少比源数组大两倍。

执行复制的循环可以如下所示

size_t j = 0;
for ( size_t i = 0; str_in[i] != '\0'; i++ ) 
{
    str_out[j++] = str_in[i];
    str_out[j++] = str_in[i];
}

str_out[j] = '\0';

推荐阅读