The*_*man 1 c string formatting strlen
我有这个:
char * str = "hahahahahihihihihohohohohahahahahihihihihohohohohahahahahihihihihohohohohahahahahihihihihohohohohahahahahihihihihohohohohahahahahihihihihohohoho\0";
Run Code Online (Sandbox Code Playgroud)
我该如何正确设置其格式,以80列中断?使用方法:
char * str = "foo\
bar";
Run Code Online (Sandbox Code Playgroud)
似乎是一个非常糟糕的主意,它导致未定义的行为,使strlen()返回的废话值
编辑:这是我正在谈论的未定义的行为:
#include <stdio.h>
#include <string.h>
int main(void)
{
char *s = "haha\
hihi\0";
unsigned i = strlen(s);
printf("Length: %i\n", i);
return 0;
}
imperator@RomaAeterna ~/P/C/undefined> gcc -Wall -Wextra undefined.c
imperator@RomaAeterna ~/P/C/undefined> ./a.out
Length: 14
Run Code Online (Sandbox Code Playgroud)
您可以使用多行,如下所示:
char* str = "line1"
"line2"
"line3";
Run Code Online (Sandbox Code Playgroud)
例如。认为""它是一个编译时串联运算符;实际上,"一个字符串的关闭与下一个字符串的打开之间的任何空格"都足够。