小编Ela*_*paz的帖子

是否可以像 python 的 f-strings 那样在 C++ 中格式化字符串?

在 Python 中,可以使用 f-strings 方便地格式化字符串:

a = 42
print(f"a = {a}") # prints "a = 42"
Run Code Online (Sandbox Code Playgroud)

是否可以在编译时在 C++ 中做这样的事情,或者是format("a = {}", a);最接近 f-strings 的东西?

编辑:我并不是说这些格式化方法应该在运行时工作。编译器不能只在编译时通过名称查找当前作用域中可见的变量吗?就像,如果它遇到字符串,f"foo = {foo}"它可以将此字符串替换为std::format("foo = {}", foo)代码

c++ python f-string

12
推荐指数
3
解决办法
3598
查看次数

根据另一个列表删除列表中的项目

如何lst1根据列表从列表中删除项目lst2

lst1 = ['abc__2','def__3','xyz__3','pqr__1']
lst2 = ['def','xyz','tuv']
Run Code Online (Sandbox Code Playgroud)

分裂我做了

lst3 = [k.split("__")[0] for k in lst1]
Run Code Online (Sandbox Code Playgroud)

删除我做了

new_list = [i for i in lst3 if i not in lst2]
Run Code Online (Sandbox Code Playgroud)

但这样一来,就失去了原单的独创性。

必填清单: new_list = ['abc__2','pqr__1']

python list

2
推荐指数
1
解决办法
63
查看次数

是否可以像 Python 的 f-strings 一样在 C 中格式化字符串?

在 Python 中,可以使用 f-strings 方便地格式化字符串:

num = 12
print(f"num is {num}") # prints "num is 12"
Run Code Online (Sandbox Code Playgroud)

有可能在 C 中做这样的事情吗?或者类似的东西?目前,要将变量添加到输出中,我正在使用此方法:

int num = 12;
printf("num is %d", num);
Run Code Online (Sandbox Code Playgroud)

这是将变量添加到 C 中的打印语句的唯一方法吗?

c f-string

0
推荐指数
1
解决办法
100
查看次数

C 中数组初始化的差异

我有这个代码:

#include <stdio.h> 
int main()
{
    int arr2[5];
    arr2[0] = 0;
    arr2[1] = 1;
    arr2[2] = 2;
    arr2[3] = 3;
    int arr3[5] = {1, 2, 3, 4};
}
Run Code Online (Sandbox Code Playgroud)

当我打印每个数组的第五个位置时,我得到不同的结果:

printf("Fifth: %d\n", arr2[4]); // Prints Random number 
printf("Fifth: %d\n", arr3[4]); // Prints Zero!
Run Code Online (Sandbox Code Playgroud)

输出:

Fifth: -858993460
Fifth: 0
Run Code Online (Sandbox Code Playgroud)

我知道第一个是指向内存中第五个位置的指针,第二个是数组如何用 0 初始化。我不明白为什么他们给我两个不同的值。在这两种情况下我都将数组的大小设置为 5;为什么会发生这种情况?

c arrays pointers

0
推荐指数
1
解决办法
79
查看次数

标签 统计

c ×2

f-string ×2

python ×2

arrays ×1

c++ ×1

list ×1

pointers ×1