如何复制字符串并在新字符串中添加更多单词?

时间:2014-04-02 06:26:40

标签: c string

如果我有这段代码:

int main ()
{
    char *string = "beach" ;
    char newString[50];
    strcpy(newString,string);
    return(0);
}

运行后,newString将成为“海滩”,对吗?如果我希望newString成为“beach.jpg”,我应该怎么做?

感谢。

5 个答案:

答案 0 :(得分:1)

坚持你的代码

int main ()
{
    char *string = "beach" ;
    char newString[50];
    strcpy(newString,string);
    strcat(newString,".jpg");
    return(0);
}

我假设newString中有足够的空间。

答案 1 :(得分:0)

如果您不想使用任何内置函数..

int i=0;
for(;newString[i]!='\0';i++);
newString[i++]='.';
newString[i++]='j';
newString[i++]='p';
newString[i++]='g';
newString[i]='\0';

如果您更喜欢使用内置功能,则可以包含此行。

strcat(newString,".jpg");

答案 2 :(得分:0)

您只需使用字符串文字初始化数组,然后使用标准库函数strcat".jpg"附加到其中。确保数组string足够大,否则strcat可能会超出调用未定义行为的缓冲区。另请注意,return不是函数。

#include <string.h>
#define MAX_LEN 50

int main(void) {
    char string[MAX_LEN] = "beach";
    strcat(string, ".jpg");

    return 0;
}

答案 3 :(得分:0)

尝试:

strcat(strcpy(newstring, string), ".jpg");

始终记得确保新闻字符串中有足够的空间。

答案 4 :(得分:0)

int main ()
{
    char *string = "beach" ;
    char newString[50];
    sprintf(newString,"%s.jpg",string);
    printf("%s",newString);
    return(0);
}

使用sprintf,您可以连接多个字符串。