迭代地连接两个字符串 - C.

时间:2014-12-31 00:15:06

标签: c iteration string-concatenation

我希望迭代一个字符串(由用户输入),在每个字符后面返回输入的字符串,并添加一个空格。即"你好" - > " H e l l o"。

我的代码在C:

#include <stdio.h>
#include <string.h>

int main()
{
    char str[] = "";
    printf("Enter a string: ");
    scanf("%s", &str);

    int i = 0;
    char newstr[150] = "";

    for (i = 0; i < strlen(str); i++)
    {
        strcat(newstr, str[i]);
        strcat(newstr, " ");
    }

    printf("Expanded String: ");
    printf("%s", newstr);

    return 0;
}

我的错误如下:

  

警告:传递'strcat'的参数2使得整数指针没有强制转换[默认启用]      -----&gt; strcat(newstr,str [i]);

     

注意:预期'const char *'但参数类型为'char'      -----&gt; char * _EXFUN(strcat,(char * __ restrict,const char * __ restrict));

我习惯使用python语法来连接字符串索引,这是我的C代码出错了吗?

1 个答案:

答案 0 :(得分:2)

for (i = 0; i < strlen(str); i++)
{
    newstr[2*i]=str[i];
    newstr[2*i+1]=' ';
}
// newstr[2 * strlen(str)] = '\0';
// thanks for the hint - I omit that because
// the whole buffer had been cleared during initialization