标签: string-literals

yaml/yaml多行转义序列中的Markdown?

是否可以在yaml中存储未转义的降价文档?我测试过了

key:|+ 
    markdown text block that could have any combination of line breaks, >, -, :, ', " etc etc. 
Run Code Online (Sandbox Code Playgroud)

这不起作用.对于yamal,我需要类似CDATA或python样式的三重引号.有任何想法吗?

markdown yaml cdata string-literals

6
推荐指数
1
解决办法
2725
查看次数

如何自动逃避路径

我有一个路径字符串c:\user\test\test.jpg,我怎么能做到c:\\user\\test\\test.jpg

c# asp.net string-literals .net-3.5

6
推荐指数
3
解决办法
2万
查看次数

搜索字符串实习和文字字符串声明的成本

两个问题.

  1. 当我们声明文字字符串时,我们搜索堆的字符串池中是否有相同的字符串.这也是一个实习生(课堂实习生String)?

  2. 在我看来,每个文字字符串声明都需要二进制搜索,所以当n是池中现有字符串的数量时,它至少要花费log(n).如果池中有许多字符串,则可能成本很高.(可能需要权衡搜索成本和内存?)从这个角度来看,声明mant文字字符串可能很危险. 这种搜索成本的重要性以及为什么以这种方式设计java(在声明文字字符串时搜索池).

以下是我所提到的理解背景.


该类JavaDocjava.lang.String说明:

字符串是不变的; 它们的值在创建后无法更改.字符串缓冲区支持可变字符串.因为String对象是不可变的,所以可以共享它们.

http://www.janeg.ca/scjp/lang/strLiteral.html评论:

换句话说,因为编译器知道字符串原始值在创建后无法更改,所以它可以安全地使用现有数据并避免使用重复项来弥补内存.

java performance search string-literals string-interning

6
推荐指数
1
解决办法
1072
查看次数

在字符串中使用\作为文字而不是转义

bool stringMatch(const char *expr, const char *str) {   
    // do something to compare *(expr+i) == '\\'  
    // In this case it is comparing against a backslash
    // i is some integer
}

int main() {
    string a = "a\sb";
    string b = "a b";
    cout << stringMatch(a.c_str(), b.c_str()) << endl;
    return 1;
}
Run Code Online (Sandbox Code Playgroud)

所以现在的问题是:Xcode没有在'\'中读取,当我在stringMatch函数中调试时,expr只出现'asb'而不是文字a\sb'.

并且Xcode在该行吐出警告:string a ="a\sb":未知的转义序列

编辑:我已经尝试使用"a \\ sb",它以"a \\ sb"作为文字读入.

c++ xcode string-literals

6
推荐指数
2
解决办法
6万
查看次数

Razor标记中的字符串开关,在case语句中使用冒号导致错误"未终止的字符串文字"

当我想在我的字符串开关case语句中使用冒号":"时,我得到错误"unterminated string literal",我该如何解决这个问题,为什么会出错?

码:

@switch (stringText)
{
    case "aaaa:ggg":
        Do something...
        break;
    case "bbbb:ggg":
        Do something else...
        break;
 }
Run Code Online (Sandbox Code Playgroud)

如果通过这样做修复它,但是没有找到它是一个好的解决方案:

const string extra = ":ggg";
@switch (stringText)
{
    case "aaaa" + extra:
        Do something...
        break;
    case "bbbb" + extra:
        Do something else...
        break;
 }
Run Code Online (Sandbox Code Playgroud)

编辑:使用MVC Razor语法

c# string-literals switch-statement razor

6
推荐指数
1
解决办法
866
查看次数

C编译器??)替换

我们遇到了Visual Studio 2005编译器的一个奇怪问题.
在编译时,它替换此字符串常量

"... ,0x??)"
Run Code Online (Sandbox Code Playgroud)

这一个:

"... ,0x]"
Run Code Online (Sandbox Code Playgroud)

我们几乎没有通过尝试执行以下替换来学习:

??(   ->   [
??)   ->   ]
??<   ->   {
??>   ->   }
Run Code Online (Sandbox Code Playgroud)

所以我想这应该是一个功能,而不是一个bug.
Visual Studio 2010不会这样做.

太糟糕了,你不能用谷歌搜索??(.
所以问题是:

我们可以通过编译器开关控制这种行为吗?

顺便说一句:这是什么原因?

c++ compiler-construction string string-literals visual-studio

6
推荐指数
1
解决办法
172
查看次数

可以在Python中创建自定义字符串文字前缀?

假设我有一个自定义类派生自str实现/覆盖一些方法:

class mystr(str):
    # just an example for a custom method:
    def something(self):
        return "anything"
Run Code Online (Sandbox Code Playgroud)

现在我必须mystr通过在构造函数中传递一个字符串来手动创建实例:

ms1 = mystr("my string")

s = "another string"
ms2 = mystr(s)
Run Code Online (Sandbox Code Playgroud)

这并不是太糟糕,但它导致了使用类似于b'bytes string'r'raw string'或的自定义字符串前缀会很酷的想法u'unicode string'.

在Python中以某种方式可以创建/注册这样的自定义字符串文字前缀,m以便文字m'my string'导致新的实例mystr
或者这些前缀是否硬编码到Python解释器中?

python string prefix string-literals

6
推荐指数
2
解决办法
1246
查看次数

字符串文字可以在posix_spawn的argv中传递吗?

对于posix_spawn功能,其原型是:

int posix_spawn(pid_t *restrict pid, const char *restrict path,
   const posix_spawn_file_actions_t *file_actions,
   const posix_spawnattr_t *restrict attrp,
   char *const argv[restrict], char *const envp[restrict]);
Run Code Online (Sandbox Code Playgroud)

值得注意的是,该argv参数指向char *指针数组(即指向可变字符的指针).此外,文档似乎没有保证不会写入数据.

我的问题是:在某个地方是否可以保证传递字符串文字?或者我们冒着段错误的风险?

示例代码:

char *v[] = { "foo.exe", "bar", NULL };
posix_spawn( NULL, "foo.exe", NULL, NULL, v, NULL );
Run Code Online (Sandbox Code Playgroud)

c posix string-literals

6
推荐指数
1
解决办法
373
查看次数

使用带有字符指针的 strcat 函数

我想通过使用两个字符指针来打印“Hello - World”,但我有一个“分段错误(核心转储)”问题。

#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#define Hyphen " - "
int main()
{
  char* x="Hello";
  char* y="'World'";
  strcat(x, Hyphen);
  strcat(x, y);
  printf("%s",x);
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

c pointers string-literals strcat

5
推荐指数
1
解决办法
2042
查看次数

C:所有字符串文字都具有静态存储持续时间吗?

我一直在阅读各种来源,字符串文字在程序的整个生命周期中都保留在内存中。在那种情况下,这两个函数之间有什么区别

char *f1() { return "hello"; }
char *f2() {
   char str[] = "hello";
   return str;
}
Run Code Online (Sandbox Code Playgroud)

虽然f1编译正常,但f2抱怨我正在返回堆栈分配的数据。这里会发生什么?

  • 如果str指向实际的字符串文字(具有静态持续时间),为什么会出现错误?
  • 如果字符串文字被复制到局部变量str,那么原始字符串文字去哪里了?它是否保留在内存中而不引用它?

c arrays initialization string-literals implicit-conversion

5
推荐指数
2
解决办法
491
查看次数