我想知道我们可以将pip uninstall numpy
pip install numpy
分配给另一个变量
我已经在strcat()
内通过*str1
和*str2
进行了尝试,但是同一件事没有发生。
strcat()
我希望它会打印int main() {
char *str1 = "united";
char *str2 = "front";
char *str3;
str3 = strcat(str1, str2);
printf("%s\n", str3);
return 0;
}
,但是输出的是空白屏幕。
答案 0 :(得分:0)
我不知道是否已经有任何内置函数,但是您可以使用这种函数来实现所需的功能。
char* concatStrings(const char* s1, const char* s2)
{
char* outputString= malloc(strlen(s1) + strlen(s2) + 1);
outputString[0] = '\0';
strcat(outputString, s1);
strcat(outputString, s2);
return outputString;
}
修改:
我没有必要先提醒一下,在完成返回的字符串后,您应该使用free()
释放为返回的字符串分配的内存。此外,为了能够调用free()
分配的内存,输出类型shold的类型应为char*
。
答案 1 :(得分:0)
您的问题的简短答案是:
是,可以将
strcat
的返回值分配给变量。它始终等于其第一个参数,但有时将其直接传递给另一个函数很方便:
#include <stdio.h>
#include <string.h>
int main() {
char buf[20];
printf("%s\n", strcat(strcpy(buf, "Hello "), "world!"));
return 0;
}
长答案是:
您的代码具有未定义的行为,因为您传递了字符串常量"united"
作为strcat()
的目标数组。尝试修改字符串常量具有未定义的行为。
您应该这样修改代码:
#include <stdio.h>
#include <string.h>
int main() {
char buf[20];
const char *str1 = "united";
const char *str2 = "front";
char *str3;
strcpy(buf, str1);
str3 = strcat(buf, str2);
printf("%s\n", str3);
return 0;
}
由于未添加空格,因此输出为:
unitedfront