0

首先,这个问题的解决方案需要非常有效。

我的问题是我需要比较两个APT_Strings 的某些部分(一个 DataStage 类型)。即,字符串是包含空格字符的姓氏,例如“Brown Marrow”。但是,名称位于 30 字节字段中,剩余空间用空格字符填充。

简而言之,我需要找到两个连续空格字符的第一个实例(表示有用姓氏的结束)。我的解决方案是

bool foundit = false;

for (int ind = 0; ind<=q_array[i].LAST_NAME.length() && !foundit; ind++) { if (q_array[i].LAST_NAME[ind] == ' ' && q_array[i].LAST_NAME[ind+1] == ' ') { cout<<"two spaces in a row at char " << ind << endl;

foundit = true;

}
}

不幸的是,APT_String 似乎没有 find(),否则我会使用它。有没有人有更好或更有效的方法来做到这一点?

4

2 回答 2

0

同样,如果您想知道某些字符是否在字符串中,则需要对其进行迭代。没有其他机会,Even findand strcmpand whatelse 这样做。没有机会绕过这个循环的东西。

现在,您始终可以将其包装APT_String在您自己的myAPT_String类中,该类也有一个size_t string_size您需要管理的成员,并使用它跳转到字符串的末尾。

于 2011-05-23T17:55:06.270 回答
0

一个 30 字节的字段不能花很长时间来扫描,可以吗?

如果要查找名称的结尾,我将从字符串的末尾开始并反向扫描,直到第一个非空格。

于 2011-05-23T17:59:28.390 回答