C字符串连接

use*_*145 1 c string concatenation

我试图在C中输入2个字符串,并输出第3个字符串,字符串1和2的串联.

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

/*
 * 
 */
int main(int argc, char** argv) {

    char stringarray1 [30];
    char stringarray2 [30];
    char stringarray3 [30];

    int length;

    printf("Please enter some text less than 30 characters long\n");
    scanf("%[a-z, ]", &stringarray1);

    printf("Please enter some text less than 30 characters long\n");
    scanf("%[a-z, ]", &stringarray2);

    strcat(stringarray1, stringarray2);


    //length = strlen(stringarray);
    printf("The combined string is %s\n", stringarray1);


    return (EXIT_SUCCESS);
}
Run Code Online (Sandbox Code Playgroud)

它允许我输入第一个字符串,但然后打印seond和第三个printf语句,而不允许我输入第二个字符串.

如何在不退出的情况下输入第二个字符串?为什么退出?

Fli*_*sch 6

看看以下文档scanf:您的格式字符串"%[a-z, ]"不是您认为它的作用.只需"%s"用于字符串.(它没有任何字符检查).