Tag: string

std :: string和string文字不一致

我在C ++ 0x中发现了std::string和string文字之间令人不安的不一致: #include <iostream> #include <string> int main() { int i = 0; for (auto e : "hello") ++i; std::cout << "Number of elements: " << i << '\n'; i = 0; for (auto e : std::string("hello")) ++i; std::cout << "Number of elements: " << i << '\n'; return 0; } 输出是: Number of […]

将string分成长度可变的较小的string

我想通过一定的长度variables来分割一个string。 当string的最后一段长度不能长于或长于长度时,它需要进行边界检查以防止爆炸。 寻找最简洁(但可以理解)的版本。 例: string x = "AAABBBCC"; string[] arr = x.SplitByLength(3); // arr[0] -> "AAA"; // arr[1] -> "BBB"; // arr[2] -> "CC"

什么是以长度为前缀的string克服零终止string的问题?

什么是以长度为前缀的string克服零终止string的问题? 我正在阅读书写伟大的代码卷。 我想到了这个问题。

Python检查string的第一个和最后一个字符

任何人都可以请解释这个代码有什么问题吗? str1='"xxx"' print str1 if str1[:1].startswith('"'): if str1[:-1].endswith('"'): print "hi" else: print "condition fails" else: print "bye" 我得到的输出是: Condition fails 但我希望它打印hi而不是。

使用(str1 + str2).c_str()是否安全?

我testing了这个代码: #include <iostream> #include <cstdio> #include <string> using namespace std; int main() { string s1("a"),s2("b"); const char * s = (s1+s2).c_str(); printf("%s\n",s); } 它返回“ab”。 据我所知,由于(s1 +s2)是一个临时对象,并可能以某种方式消失(我不知道这个),然后const char * s可能指向未定义的内存,可能会被抛弃。 那么使用.c_str()这样的安全吗?

如果我不给它一点额外的空间,就会发疯。 任何人都可以解释这里发生了什么?

首先,我想说我是C / C ++的新手,我最初是一名PHP开发人员,所以我习惯于以任何我喜欢的方式滥用variables。 C是一个严格的国家,编译器不是很喜欢我这里,我习惯于违反规则去完成任务。 无论如何,这是我的一段简单的代码: char IP[15] = "192.168.2.1"; char separator[2] = "||"; puts( separator ); 输出: ||192.168.2.1 但是,如果我将separator的定义更改为: char separator[3] = "||"; 我得到所需的输出: || 那么为什么我需要给这个男人额外的空间,所以他不和他之前的男人睡觉?

如何在Swift中将Int转换为hexstring

在Obj-C中,我用无符号整数n转换为hexstring NSString *st = [NSString stringWithFormat:@"%2X", n]; 我试了很长时间把它翻译成Swift语言,但是没有成功。

如何将string转换为BigInteger?

我试图从标准input中读取一些非常大的数字,并将它们加在一起。 但是,要添加到BigInteger,我需要使用BigInteger.valueOf(long); : private BigInteger sum = BigInteger.valueOf(0); private void sum(String newNumber) { // BigInteger is immutable, reassign the variable: sum = sum.add(BigInteger.valueOf(Long.parseLong(newNumber))); } 这工作正常,但作为BigInteger.valueOf()只需要很long ,我不能添加数字大于long的最大值(9223372036854775807)。 每当我尝试添加9223372036854775808或更多,我得到一个NumberFormatException(这是完全预期)。 有没有像BigInteger.parseBigInteger(String) ?

如何计算子string的发生?

假设我有一个string: MyString = "OU=Level3,OU=Level2,OU=Level1,DC=domain,DC=com"; 那么我想知道这个string中子string“OU =”的出现次数。 用一个字符,也许有这样的东西: int count = MyString.Split("OU=").Length – 1; 但Split只适用于char ,而不是string 。 另外如何findn次出现的位置? 例如,第二个"OU="在string中的位置? 如何解决这个问题?

在C ++中的string中的NUL char

在下面的代码中,我试图用'\0'replace第一个字符。 我期望它打印一个空string,但在输出中,它只是省略,并显示其余的字符。 int main() { string str; cin >> str; str[0] = '\0'; cout << str << "\n"; return 0; } 输出: testing esting 如何在C ++中终止string? PS:我正在试图终止string在另一个问题,我需要终止之间的方法。