s***e 发帖数: 793 | 1 or use stringstream in c++
for example
const char* cstring="100000000"
long long num;
std::string lonstring;
std::stringstream converter;
converter<
coverter>>num;
from long to string
converter<
converter>>longstring; |
|
h**p 发帖数: 377 | 2 我现在用的是atof(),先转成double
让後由double强制转换成long long
or use stringstream in c++
for example
const char* cstring="100000000"
long long num;
std::string lonstring;
std::stringstream converter;
converter<
coverter>>num;
from long to string
converter<
converter>>longstring; |
|
s*****n 发帖数: 3 | 3 我刚开始自学.我是这么写的:
char *tt =(char *)(LPCTSTR)mycstring;
AfxMessageBox((LPCTSTR)tt);
这么看输出是正确的,但是我想用tt[0]..tt[i]..去得到一个个字符,
却发现只有tt[0]是正确的,后面的都是空的(至少打印不出来)
我应该怎么把CString转化为char*呢? 非常感谢! |
|
B*******g 发帖数: 1593 | 4 试试strcpy吧,忘了是否需要把cstring 转成string了 |
|
s*********d 发帖数: 19 | 5 有str1、str2两个cstring类型变量
str1是从edit对话框得到的
str2是从txt文本利用ReadFile()得到
出现诡异的是:假设str1的值是"aa", str2的值是"aa";利用str1.compare(str2)能正
确比较。但是如果str1的值是"bb", str2的值是"bb",结果却是不相等,查看两个的
m_pszData都是显示"bb",但是一个是显示0x000a L''另外一个却显示是0x0062L'b'
请问原因是什么 怎么解决好 |
|
s******n 发帖数: 3946 | 6 觉得那个不太好,用share pointer:
class COWString {
share_ptr data;
public:
COWString(const char* input)
{
data = share_ptr(new CString(input));
}
COWString(const COWString& str)
{
data = str.data;
}
COWString& operator=(const COWString& str)
{
data = str.data;
return *this;
}
COWString& SetAt(int index, char c)
{
CString* newStr = new CString(data->c_str());
newStr->SetAt(index, c);
data = share_ptr(newStr);
return *this;
}
char GetAt(int index) const
{
... 阅读全帖 |
|
s******n 发帖数: 3946 | 7 觉得那个不太好,用share pointer:
class COWString {
share_ptr data;
public:
COWString(const char* input)
{
data = share_ptr(new CString(input));
}
COWString(const COWString& str)
{
data = str.data;
}
COWString& operator=(const COWString& str)
{
data = str.data;
return *this;
}
COWString& SetAt(int index, char c)
{
CString* newStr = new CString(data->c_str());
newStr->SetAt(index, c);
data = share_ptr(newStr);
return *this;
}
char GetAt(int index) const
{
... 阅读全帖 |
|
s********z 发帖数: 5411 | 8 我在把下面这段code改成qt,是不是需要删掉 “ifdef _MSC_VER”阿?
这里为什么要用”#ifdef _MSC_VER“ “#endif”阿? 只有是visual studio
compiler情
况下,这个code才能用?
多谢
xx.h
#ifdef _MSC_VER
int ReadString(CString& strMsg, char chStop);
int ReadString(CString& strMsg);
int WriteString(CString strCmd);
#endif
xx.cpp
#ifdef _MSC_VER
int CCamlinkSerial::ReadString(CString& strMsg, char chStop)
{
if (!m_bOpened) { return 0; }
char chCur = chStop + 1; // ensures that ucCur and ucStop are
different to begi... 阅读全帖 |
|
y***n 发帖数: 1594 | 9 No H-1B sponser, GreenCard or Citizehship status is needed.
After apply online, you can let me know if you need additional
information, and I can do referral if needed. But you need apply online
yourself.
Software Developer II (Three positions) .
http://agency.governmentjobs.com/ohio/default.cfm?
action=viewJob&jobID=323540&hit_count=yes&headerFooter=1&promo=0&transfe
r=0&WDDXJobSearchParams=%3CwddxPacket%20version%3D%271%2E0%27%3E%3Cheade
r%2F%3E%3Cdata%3E%3Cstruct%3E%3Cvar%20name%3D%27FIND%5F... 阅读全帖 |
|
c******t 发帖数: 205 | 10 来自主题: Programming版 - 高手请进 我遇到这样一个问题。如何自动upgrade/downgrade家用路由器的firmware (C++)? 我
的方法不灵:
一般firmware upgrade page是一个表格,有一个文件upload field,一个submit
button.
以下是我的方法的一个sample:
/// from 3.01.31 to 3.01.25
CString url = "http://" + RouterIP + "/cgi-bin/upgrade.exe";
CString ref = "http://" + RouterIP + "/system_f.stm";
CString request = "-----------------------------7d715a3150268";
request += "\nContent-Disposition: form-data; name=\"target\"";
request += "\n\n5";
request += "\n-----------------------------7d715a3150268";
reques |
|
M********5 发帖数: 715 | 11 首先,你要弄清楚这道题的考点。这道题的考点是conversion operator,参考c++
primer的527页。
conversion operator的很明显的一个特点是函数以operator开头,且没有返回值,依
据这一点,排除了三个选项。
第二个考点(本来不是太明显,在这题中),就是const究竟修饰什么,记住一点,
const放在*后面,修饰的就是指针,就是说指针不能再变。
第三个考点,strcmp的参数类型是什么?cstring!cstring又是什么?const char*!
所以这就是我的答案 |
|
t*i 发帖数: 72 | 12 我有些数据存在文件中,我想用C++读入这个文件。 读入的时候一般都读成String
type. 我需要用文件中变量做计算的时候就要把他们换成int or fload type. C++支持
Cstring and string class. 请问我必须要用cstring才能完成char-->int, float转换
,还是用String class也可以。如果两种都可以,能不能比较一下两者的优劣。
非常感谢。 |
|
f*******e 发帖数: 3 | 13 When converting a very long CString to a _bstr_t, I got the "out of stack
space" error.
The code is:
_bstr_t b=LPCTSTR(str); //str is a CString appx. 670000 chars long
Anyway to work around this? Thanks. |
|
A****0 发帖数: 12393 | 14 汉服很好看啊,穿穿无所谓,cosplay连cstring都穿为啥不能穿汉服 |
|
p*********a 发帖数: 21 | 15 Here is the code to find the largest square matrix, for the rectangular, it's a bit more difficult. I will share the code if possible.
#include
#include
const int N = 100;
int d[N][N];
int m, n;
inline int minF(int a, int b, int c) {
return a
}
int main()
{
freopen("in.txt", "r", stdin);
int i, j;
while(scanf("%d%d", &m, &n)!=EOF) {
memset(d, 0, sizeof(d));
for(i=1; i<=m; i++) {
for(j=1; j<=n; j++) {
|
|
f*********r 发帖数: 68 | 16 1. 用DP就可以了时间O(MN), 空间O(MN), 贴一个我写的代码
// [11/7/2009 by Fairylander]
// 最大子矩形
#include
#include
const int N = 201;
int d[N][N]; // '0', '1'
int ht[N][N], lf[N][N], rt[N][N]; //
int m, n;
inline void solve() {
int res = 0;
int i, j;
for(i=1; i<=n; i++) { // init;
ht[0][i] = 0; lf[0][i] = 1; rt[0][i] = n;
}
for(i=1; i<=m; i++) {
int k = 1, tmp;
// 从左向右扫描, (i, j)为长方型的底边上一点, 依次求出对应长方型的高
度ht[i][j],
// 和这个长方型向左最远能延伸到的地方lf[i][j]
|
|
B*****t 发帖数: 335 | 17 写了个程序, x=8327168时, 我的老破机器0秒就可以出结果了
#include
#include
#include
#include
using namespace std;
int x = 8327168, k;
int d[1000];
char buf[100000];
inline bool check(int val, int ix) {
int i;
for(i=0; i<=ix; i++){
if(val%2==1&&d[i]==2) return false;
val >>=1;
}
return true;
}
void dfsFind21Str(int ix, int tot) {
if(tot>x) return;
if(ix==k) {
int i, reminder = 0;
i = 0;
reminder = x;
while(remind |
|
d**f 发帖数: 264 | 18 程序是没有问题的,问题出在C++
const char* c = "hi";
前面那个const是implicit.
char c[] = "hi";
也不好,这个要depends on compiler.
所以最好的办法是,C++下直接用string
尽量少用cstring. |
|
E*****7 发帖数: 128 | 19 class String
{
public:
String(const char*);
String();
friend int strcmpu(const String& lhs, const String& rhs);
private:
char* s;
int len;
};
// Implementation for it to compile("Big Three" issue exists)
#include
class String
{
public:
String(const char* in_s)
{
if (in_s)
{
s = new char[strlen(in_s) + 1];
strcpy(s, in_s);
} else {
String();
}
}
String()
{
s = 0;
len = 0;
}
friend int strcmpu(const String& lhs, const String& rhs);
private:
char* s;
... 阅读全帖 |
|
|
S**I 发帖数: 15689 | 21 error message说的很清楚:string类的operator<没有定义,改成这样子就行了:
#include
#include
#include
#include
#include
using namespace std;
bool comp(const string& s1, const string& s2){
return strcmp(s1.c_str(), s2.c_str()) < 0;
}
int main () {
char *m1[] = {"a","e","c","m"};
vector v1(m1,m1+4);
char *m2[] ={"n"};
vector v2(m2,m2+1);
vector u;
/* int m1[] = {1,2,3,4};
vector v1(m1,m1+4);
int m2[] ={... 阅读全帖 |
|
l**********3 发帖数: 161 | 22 贴个简单点的,但是比较长 。。。
==============
#include
#include
#include
#include
using namespace std;
enum direct_t { RIGHT, DOWN, LEFT, UP };
void print_spiral_matrix(int dimX, int dimY)
{
int** matrix = new int*[dimX];
for (int i=0; i
{
matrix[i] = new int[dimY];
memset(matrix[i], 0, sizeof(int)*dimY);
}
int num = 1;
direct_t dir = RIGHT;
int i, j;
for (i=j=0; num <= dimX*dimY; ++num)
{
ma... 阅读全帖 |
|
l*********y 发帖数: 142 | 23 顺手写了一个,46min整。也没用状态压缩,待会看一下gloomyturkey的code。
#include
#include
#include
#include
#include
#include
#include
|
|
l*********y 发帖数: 142 | 24 #include
#include
#include
#include
#include
#include
#include
|
|
j*******g 发帖数: 4 | 25 见过很多次这个题目了,一直没有招,下面写了一个又臭又长的, 方法很笨, 求建议
, 欢迎批评和指正
这样的代码面试可以通过吗?
////////////////////////////////////////////////////////////////
#include
#include
using namespace std;
//假设16位的整型
// -32768 , +32767
const char MAX_INT[] = "32767";
const char MIN_INT[] = "32768";
const int MAX_STRLEN = 5;
bool my_atoi(const char *str, int &res)
{
if(str == NULL)
{
cout << "Invalid pointer" << endl;
return false;
}
int index = 0;
if(str[index] == '-' || s... 阅读全帖 |
|
f*******t 发帖数: 7549 | 26 没那么复杂,只要交换就好了
#include
#include
#include
void swap(char *arr, int idx1, int idx2) {
char temp = arr[idx1];
arr[idx1] = arr[idx2];
arr[idx2] = temp;
}
void permutation(char* arr, int index, int size) {
if (index == size) {
printf("%s\n", arr);
}
else {
for (int i=index; i
swap(arr, i, index);
permutation(arr, index+1, size);
swap(arr, i, index);
}
}
}
int main()
{
... 阅读全帖 |
|
f*******t 发帖数: 7549 | 27 #include
#include
#include
void swap(char *arr, int idx1, int idx2) {
char temp = arr[idx1];
arr[idx1] = arr[idx2];
arr[idx2] = temp;
}
void permutation(char* arr, int index, int size) {
if (index == size) {
printf("%s\n", arr);
}
else {
for (int i=index; i
if(i != index && arr[i] == arr[index])
continue;
swap(arr, i, index);
permutation(arr, index+1, size);
... 阅读全帖 |
|
f*******t 发帖数: 7549 | 28 平衡括号的题可以用贪心法做吧
#include
#include
#include
#include
#define INVALIDCHAR -1
using namespace std;
char *balance(char *str)
{
int len = strlen(str);
if(len < 1)
return NULL;
char *buff = (char*)calloc(len + 1, 1);
stack left;
for(int i = 0; i < len; i++) {
if(str[i] == '(')
left.push(i);
else if(str[i] == ')') {
if(left.empty()) {
buff[i] = INVALIDCHAR;
co... 阅读全帖 |
|
m*********e 发帖数: 13 | 29 Q1: left = 0, down = 1
#include
#include
using namespace std;
void pathes(int x, int y, string s){
if( x == 0 && y == 0){
cout<
return;
}
if(x > 0){
pathes(x-1, y, s+"0");
}
if(y > 0){
pathes(x, y-1, s+"1");
}
};
int main(int argc, char **argv){
pathes(3, 2, "");
}
If some points are not allowed, check it before move left or down. |
|
S**I 发帖数: 15689 | 30 ☆─────────────────────────────────────☆
libei (Bei) 于 (Wed Jan 11 15:43:39 2012, 美东) 提到:
面试官是Google+组的,
一上来她说看到我简历上的一篇测试自动化的文章,读了一遍,感觉"very
informative",让后让我介绍一下相关经验。让我小高兴了一下。
第一题是coding,做的还算顺利,后来她评价说所有的cases都覆盖到了。可能算是过
关吧。
第二题我想复杂了,然后在她提示下才解决。自我感觉很不好。其实sort一下就差不多
了,不过我往复杂的树结构想去了。虽然树结构确实能解决这个问题,不过当时我解释
得很不清楚。反正很不爽。
最后瞎聊时间,她说我提到的测试自动化实践和Google内部的基本完全一样blahblah。
。。,不过我觉得这点也算不上加分吧,是个人进google一段时间后都能学会。就怕她
觉得我想问题太复杂,直接negative。
大家有啥建议想法??
☆─────────────────────────────────────☆
peking2 (myfac... 阅读全帖 |
|
j*******g 发帖数: 4 | 31 见过很多次这个题目了,一直没有招,下面写了一个又臭又长的, 方法很笨, 求建议
, 欢迎批评和指正
这样的代码面试可以通过吗?
////////////////////////////////////////////////////////////////
#include
#include
using namespace std;
//假设16位的整型
// -32768 , +32767
const char MAX_INT[] = "32767";
const char MIN_INT[] = "32768";
const int MAX_STRLEN = 5;
bool my_atoi(const char *str, int &res)
{
if(str == NULL)
{
cout << "Invalid pointer" << endl;
return false;
}
int index = 0;
if(str[index] == '-' ||... 阅读全帖 |
|
f*******t 发帖数: 7549 | 32 #include
#include
#include
#define ENTRYNOTFOUND 0
#define ENTRYFOUND 1
#define NOTCOMPLETE 2
struct Trie;
void FindWords(Trie *root);
struct Trie
{
Trie();
~Trie();
Trie *children[26];
bool isEnd;
};
Trie::Trie()
{
for(int i = 0; i < 26; i++)
children[i] = NULL;
isEnd = false;
}
Trie::~Trie()
{
for(int i = 0; i < 26; i++) {
if(children[i]) {
delete children[i];
children[i] = NULL;
}
}
}
... 阅读全帖 |
|
|
h*****g 发帖数: 312 | 34 感觉挺简单的,不知道我的理解是否对
#include
#include
#include
#include
#include |
|
h*****g 发帖数: 312 | 35 感觉挺简单的,不知道我的理解是否对
#include
#include
#include
#include
#include |
|
h*****g 发帖数: 312 | 36 感觉挺简单的,不知道我的理解是否对
#include
#include
#include
#include
#include |
|
h*****g 发帖数: 312 | 37 感觉挺简单的,不知道我的理解是否对
#include
#include
#include
#include
#include |
|
s****e 发帖数: 638 | 38 下面这个是O(n) 不知道这样做行不行。
#include
#include
#include
using namespace std;
void shuffle(char* A)
{
int size = strlen(A);
int i=1;
while(i
if (A[i] & 0x80) {
i++;
continue;
}
int j=i;
int j2;
while(true){
if ( j < size/2 ) j2 = j*2;
else j2 = 2*(j-size/2)+1;
if (j2<=i) break;
swap(A[i], A[j2]);
A[j2] |= 0x80;
j=j2;
}
i++;
}
for (int i=0; i
}
int ... 阅读全帖 |
|
i***h 发帖数: 12655 | 39 用C++ STL, 还好了
下面的代码少了最后一步, 也没有sanity check
但也不难
当然效率不是最好的
#include
#include
#include
#include
using namespace std;
bool
compstr(char* a, char* b)
{
return strcmp(a,b)<0;
}
void
suffixArray(char *a, char *b)
{
char *m = (a>b)? a-1 : b-1;
char* suffix[strlen(a)+strlen(b)];
for(int i = 0; i
suffix[i] = a+i;
}
for(int i=0; i
suffix[strlen(a)+i] = b+i;
}
sort(suffix, suffix+strlen(a)+strlen(b), comp... 阅读全帖 |
|
h*****f 发帖数: 248 | 40 not so efficient...
#include
#include
#include
#include
#include
#include
int compare(const std::string& v1, const std::string& v2) {
std::vector version1;
std::vector version2;
std::istringstream is1(v1);
std::istringstream is2(v2);
std::string token1;
std::string token2;
double d1, d2;
bool exist1 = true, exist2 = true;
while (true) {
if (exist1) exist1 = std::getline(is1, tok... 阅读全帖 |
|
d****o 发帖数: 2 | 41 抛砖引玉
#include
#include
#include
const int kMaxK = 5;
const int kMaxN = 8;
const int kMaxS = 5 * 5 * 5 * 5 * 5 * 5 * 5 * 5;
#define DEBUG(v) std::cerr << #v << " = " << (v) << "\n"
int N, K, max_state;
short top[kMaxS][kMaxK];
int G[kMaxS][kMaxK * (kMaxK - 1) + 1];
int src = 0, dst = 0;
int f[kMaxS];
int pow(int base, int power) {
int r = 1;
for (int i = 0; i < power; r *= base, ++i);
return r;
}
int get(int num, int d) {
for (int i = 0; i < d; num /= K, ++i)... 阅读全帖 |
|
d****o 发帖数: 2 | 42 抛砖引玉
#include
#include
#include
const int kMaxK = 5;
const int kMaxN = 8;
const int kMaxS = 5 * 5 * 5 * 5 * 5 * 5 * 5 * 5;
#define DEBUG(v) std::cerr << #v << " = " << (v) << "\n"
int N, K, max_state;
short top[kMaxS][kMaxK];
int G[kMaxS][kMaxK * (kMaxK - 1) + 1];
int src = 0, dst = 0;
int f[kMaxS];
int pow(int base, int power) {
int r = 1;
for (int i = 0; i < power; r *= base, ++i);
return r;
}
int get(int num, int d) {
for (int i = 0; i < d; num /= K, ++i)... 阅读全帖 |
|
j*****y 发帖数: 1071 | 43 bless
那个 memset的有些疑问,比如我写了这个 code
#include
#include
using namespace std;
int main()
{
int a[4];
memset(a, -1, sizeof(a));
for(int i = 0; i < 4; ++i)
{
cout << a[i] << endl;
}
}
出来的的 是
-1
-1
-1
-1
好像和 memset的 documentation不太一致阿:
void * memset ( void * ptr, int value, size_t num );
Fill block of memory
Sets the first num bytes of the block of memory pointed by ptr to the
specified value (interpreted as an unsigned char).
... 阅读全帖 |
|
j*****y 发帖数: 1071 | 44 bless
那个 memset的有些疑问,比如我写了这个 code
#include
#include
using namespace std;
int main()
{
int a[4];
memset(a, -1, sizeof(a));
for(int i = 0; i < 4; ++i)
{
cout << a[i] << endl;
}
}
出来的的 是
-1
-1
-1
-1
好像和 memset的 documentation不太一致阿:
void * memset ( void * ptr, int value, size_t num );
Fill block of memory
Sets the first num bytes of the block of memory pointed by ptr to the
specified value (interpreted as an unsigned char).
... 阅读全帖 |
|
s****A 发帖数: 80 | 45 看career cup上字符反转的题,给的答案里还要先找一下结尾的NULL字符在哪里
那我面试的时候可不可以include cstring,用一下strlen函数? |
|
l*********8 发帖数: 4642 | 46 我觉得可以。
另外, 不是STL, 是c standard lib |
|
x*******9 发帖数: 138 | 47
should
5
#include
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;
#define print(x) cout << x << endl
#define input(x) cin >> x
string make_result(const vector& vec, int idx) {
string res = "";
int len = vec.size();
for (int i = 0; i < idx; i++) {
res += to_string(vec[i]);
}
res += "(";
for (int i = idx; i < len; i++) {
... 阅读全帖 |
|
x*******9 发帖数: 138 | 48 做了一下
>> 给定一个数字数组 ,其中每个元素是从末端数小于原数组中该元素的个数。求原数
组。
Time complexity: O(n * logn) // quick-sort + traverse
Memo complexity: O(n)
>> 令s[i]为a[i+1..n-1]中比a[i]大的数的数量。求最大的s[i]。要求O(nlogn)
Time complexity: O(n * logn) // Manipulate the Binary Indexed Tree
Memo compleixty: O(n)
#include
#include
#include
#include
#include
#include
using namespace std;
#define print(x) cout << x << endl
#define input(x) cin >> x
const int SIZE = 1024;
// @brief Bin... 阅读全帖 |
|
x*******9 发帖数: 138 | 49 #include
#include
#include
#include
#include
#include
using namespace std;
#define input(x) cin >> x
#define print(x) cout << x << endl
const int SIZE = 512;
const int mx[] = {0, 1, 0, -1};
const int my[] = {-1, 0, 1, 0};
int n, sea_cnt;
char g[SIZE][SIZE];
int nr[SIZE][SIZE];
int cnc[SIZE][SIZE];
void find_sea(int y, int x) {
if (g[y][x] != '0') {
return;
}
nr[y][x] = sea_cnt;
for (int i = 0; i < 4; i++) {
... 阅读全帖 |
|
t**r 发帖数: 3428 | 50 贴个答案
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
|
|