连接子串?

时间:2016-05-23 23:56:36

标签: c string

我想知道如何连接子字符串。

例如,如果我被赋予 xyz 这个词,我希望我的输出为 xxyxyz

我尝试使用Strncat编写代码,基本上我想提取子字符串并将其连接到输出中。

我如何退出'来自用户输入生成的字符串的子字符串,并能够将其输入到C?

的字符串格式中
    #include <stdio.h> 
    #include <string.h>

int main()
{
char str[100];
int i;

printf("Enter Word :" );
scanf("%s",str);

for(i=0;i<strlength(str);i++){
strncat(str(i),str(i++),i++)
}

printf("conc : %s" , str);

return 0;

}

2 个答案:

答案 0 :(得分:2)

您需要为结果字符串使用单独的变量,而不是连接到您开始使用的相同字符串。将其初始化为空字符串,然后使用strncat将子字符串连接到它。

要获取子字符串,请使用strncpy()

char input[100];
char output[5000] = "";
size_t i;

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

size_t len = strlen(input);

for (i = 0; i < len; i++) {
    strncat(output, input, i);
}

printf("conc: %s\n", output);

答案 1 :(得分:0)

我们可以用不同的方式连接子字符串

一种方式就像你做了很少的修改(通过动态分配内存和使用数组的其他方式)

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

int main()
{
    char *str;
    int i, len;

    str = (char *) malloc(100);
    printf("Enter word: ");
    scanf("%s", str);

    len = strlen(str);

    for (i = 1; i <= len; i++)
    {
        strncat(str, str, i);
    }

    strcpy(str,str+len);
    printf("conc: %s\n", str);

return 0;
} // main

int main()
{
    char str[100]           ={0};
    char ResultString[100]  ={0};
    int i, len;

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

    len = strlen(str);

    for (i = 1; i <= len; i++)
    {
        strncat(ResultString, str, i);
    } 

    printf("conc: %s\n", ResultString);

return 0;
} // main