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;
}
在一楼的追问中我有补充。。。现在主要是那个追问中的问题,谢谢大家了~· 展开
我想写一个程序读入一个中英文混合的文本,然后去判断文本中是否出现了特定的字符串,但是我试了很长时间搞不定, 首先是对于中文字符的输入输出问题,还是就是判断的时候可以使用什么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;
}
在一楼的追问中我有补充。。。现在主要是那个追问中的问题,谢谢大家了~· 展开
展开全部
代码我没仔细看,查找中文注意的就是中文是宽字节,英文字符都是一个字节,中文字符是2个字节,使用CString类中的Find函数可以实现,返回字符出现位置的索引,如:CString str = "百度提问使用度";str.Find("提问");中英文混合的建议使用这个类吧,都可以查询,你使用数组下标的方式比较麻烦,你无法确定下一个字符是英文还是中文的一半。
追问
追答
你用AfxMessagebox把stp打印出来看看不就知道错误的原因了
展开全部
_tcsstr函数可以做你想要的操作.
如果要拆出单个字符, 可心使用CharNext函数.
如果要拆出单个字符, 可心使用CharNext函数.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
推荐你使用正则表达式进行字符串匹配。那样可以很轻松搜索出字符串里是否有中文、英文或者是特殊符号。
请看正则表达式的使用说明:
http://www.oschina.net/question/12_9507
请看正则表达式的使用说明:
http://www.oschina.net/question/12_9507
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询