VC++ 文本中查找中文字符串问题 求解 30

我在用VC++6.0。我想写一个程序读入一个中英文混合的文本,然后去判断文本中是否出现了特定的字符串,但是我试了很长时间搞不定,首先是对于中文字符的输入输出问题,还是就是... 我在用VC++ 6.0。
我想写一个程序读入一个中英文混合的文本,然后去判断文本中是否出现了特定的字符串,但是我试了很长时间搞不定, 首先是对于中文字符的输入输出问题,还是就是判断的时候可以使用什么WCSSTR这种函数吗,具体怎么使用,怎么搞啊,我已经头大了,求帮助啊。
以下是一部分代码,就是为了实现找文本中是否有特定字符串的,其中我用S数组来保存文本,stp保存了特定字符串,w来记录第一次出现特定字符串的位置。 VC菜鸟跪求~~~~~

freopen("源文件.in","r",stdin);
int w = -1,st = -1,g,i,sl = 0; sum = 0;
wchar_t c,p[2000];
while (wscanf(L"%s",&p) != EOF){
// wcout<<c;
sl = wcslen(p);
for (int i = 0;i < sl; i++) {
w = (w+1) % maxn; sum++;
S[w] = p[i];
}
}
w++;
S[w] = L'\0\0';
wcout<<S<<endl;
if (wcsstr(S,stp) != NULL) {
w = wcsstr(S,stp) - S;
cout<<w<<endl;
}
在一楼的追问中我有补充。。。现在主要是那个追问中的问题,谢谢大家了~·
展开
 我来答
ucupracacia
2013-07-19 · TA获得超过194个赞
知道小有建树答主
回答量:356
采纳率:0%
帮助的人:167万
展开全部
代码我没仔细看,查找中文注意的就是中文是宽字节,英文字符都是一个字节,中文字符是2个字节,使用CString类中的Find函数可以实现,返回字符出现位置的索引,如:CString str = "百度提问使用度";str.Find("提问");中英文混合的建议使用这个类吧,都可以查询,你使用数组下标的方式比较麻烦,你无法确定下一个字符是英文还是中文的一半。
追问

我试了一下你的这个CString str = "百度提问使用度";str.Find("提问"); 的确是对的。 

但我在这个程序中还是不行啊。。T_T

Get_key函数中的stp就是保存关键字,然后scan函数去找源文件中的关键字,但明明源文件中有关键字,它还是返回-1 = =

追答
你用AfxMessagebox把stp打印出来看看不就知道错误的原因了
xiaohuh421
2013-07-19 · TA获得超过904个赞
知道小有建树答主
回答量:897
采纳率:0%
帮助的人:377万
展开全部
_tcsstr函数可以做你想要的操作.
如果要拆出单个字符, 可心使用CharNext函数.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
任明星Ming
2013-07-19 · TA获得超过798个赞
知道小有建树答主
回答量:1061
采纳率:100%
帮助的人:1147万
展开全部
推荐你使用正则表达式进行字符串匹配。那样可以很轻松搜索出字符串里是否有中文、英文或者是特殊符号。
请看正则表达式的使用说明:
http://www.oschina.net/question/12_9507
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式