C++vi 搜索 不区分大小写写搜索

4522人阅读
Character(8)
String(7)
windows(16)
17:41:49 BG57IV3@XCL T .K.F [T244,L,V4779]
使用函数 StrStrI 比较字符串,不区分大小写。
StrStrI function
Finds the first occurrence of a substring within a string. The comparison is not case-sensitive.
Return value
包含头文件 Shlwapi.h
库 Shlwapi.lib
注意:与 wcstr 不同,在传入一个空字符串时,会返回 NULL 。
Type: PTSTR
Returns the address of the first occurrence of the matching substring if successful, or NULL otherwise.
Header Shlwapi.h
Library Shlwapi.lib
nlike strstr() and wcsstr() passing an emtpy string results in NULL being returned.
pszFound = StrStrI(L"abcdefg", L""); // returns NULL
pszFoundStrStr = wcsstr(L"abcdefg", L""); // returns L"abcdefg"
char *strstr(
const char *str,
const char *strSearch
); // C only
char *strstr(
char *str,
const char *strSearch
); // C++ only
const char *strstr(
const char *str,
const char *strSearch
); // C++ only
wchar_t *wcsstr(
const wchar_t *str,
const wchar_t *strSearch
); // C only
wchar_t *wcsstr(
wchar_t *str,
const wchar_t *strSearch
); // C++ only
const wchar_t *wcsstr(
const wchar_t *str,
const wchar_t *strSearch
); // C++ only
unsigned char *_mbsstr(
const unsigned char *str,
const unsigned char *strSearch
); // C only
unsigned char *_mbsstr(
unsigned char *str,
const unsigned char *strSearch
); // C++ only
const unsigned char *_mbsstr(
const unsigned char *str,
const unsigned char *strSearch
); // C++ only
unsigned char *_mbsstr_l(
const unsigned char *str,
const unsigned char *strSearch,
_locale_t locale
); // C only
unsigned char *_mbsstr_l(
unsigned char *str,
const unsigned char *strSearch,
_locale_t locale
); // C++ only
const unsigned char *_mbsstr_l(
const unsigned char *str,
const unsigned char *strSearch,
_locale_t locale
); // C++ only
17:41:49 BG57IV3@XCL T .K.F [T244,L,V4779]
Generic-Text Routine MappingsTCHAR.H
routine_UNICODE
& _MBCS not defined_MBCS
defined_UNICODE
defined_tcsstrstrstr_mbsstrwcsstrn/an/a_mbsstr_ln/a
// crt_strstr.c
#include &string.h&
#include &stdio.h&
char str[] =
char string[] = "The quick brown dog jumps over the lazy fox";
char fmt1[] =
char fmt2[] =
int main( void )
printf( "String to be searched:\n
%s\n", string );
%s\n\n", fmt1, fmt2 );
pdest = strstr( string, str );
result = (int)(pdest - string + 1);
if ( pdest != NULL )
printf( "%s found at position %d\n", str, result );
printf( "%s not found\n", str );
}/* strstr example */
#include &stdio.h&
#include &string.h&
int main ()
char str[] ="This is a simple string";
pch = strstr (str,"simple");
strncpy (pch,"sample",6);
puts (str);
}String to be searched:
The quick brown dog jumps over the lazy fox
lazy found at position 369被浏览1,945分享邀请回答
#include &string.h&
char *strstr(const char *haystack, const char *needle);
#define _GNU_SOURCE
/* See feature_test_macros(7) */
#include &string.h&
char *strcasestr(const char *haystack, const char *needle);
0添加评论分享收藏感谢收起0添加评论分享收藏感谢收起写回答c++输入一串字母,输出每个字母的个数(不区分大小写)_百度知道
c++输入一串字母,输出每个字母的个数(不区分大小写)
入一串字母,输出每个字母的个数(不区分大小写):3b:1d。例如:输入:a:abaddAf输出
我有更好的答案
i++)if(str[i]&=&#39;A&#39;&i++)if(a[i])printf(&%c;,i+&#39#include&&stdio.h&26;i++)a[i]=0;a&#39;n;&str[i]&=&#39;z&#39;)&]++://b;(str[i]&=&#39;a&#39;&else&,a[i]);return&0;}<img class="ikqb_img" src="http:%d\n&char&nbsp
采纳率:77%
&//存放输入&&&&-&&#39;&&&{&&&&&&&&&&&&printf(&&&&,&inputstr);&&&&//计算大小写字母差值&&&&&&&&&&0;main(){&&&&//用来存放字母个数&&&&&int&&&A&#39;}&&&&&&&&}&&&&&&&&{&&&&&&&&if(wordcount[i]&&nbsp,&&&1;difference&wordcount[26]&={0};wordcount[i]);=&0;&&&&int&&&&)&&&&&&&&{&scanf(&&&&&&&&&while(inputstr[i])&&&&inputstr[i]&&//转换成大写字母存入&&&&&&&&&&&&&wordcount[inputstr[i]&;&&&&&//不到末尾则一直运行&&&inputstr[i]&&&&&&&&&&printf(&&&&+=&&&&&0)&++i)&&&&}&&&&&&&&else&if(inputstr[i]&&=&&i&&&26;&&%s&wordcount[inputstr[i]&-&&&&&&nbsp#include&&stdio.h&&)&&&&&&&&{&&&&void&&&=&&#39;Z&#39;&&#39;a&#39;&&i;z&#39;&&#39;A&#39;]&&#39;a&#39;&+&&+=&1,&int&i&&&=&&#39;-&difference&-&&for(i&=&&&&&char&&=&&#39;&&a&#39;{&&&&&&&&//处理小写字母&&&&&&&&&if(inputstr[i]&&=&&&&请输入一串字母;&&%c:%d\n&;//输出&&&&&&#39;A&#39;]&}&&&&&&&&++i;&&&&}&&&&&#39;A&#39;&&&&&&inputstr[100];)
#include &stdio.h&void main() {int c[256]={0},i=0;char s[80];scanf(&%s&,s);while(s[i]) c[s[i++]]++;for(i=0; i&26; i++) printf(&%c:%d&#92;n&,&#39;a&#39;+i,c[&#39;a&#39;+i]+c[&#39;A&#39;+i]);}
为您推荐:
其他类似问题
&#xe675;换一换
回答问题,赢新手礼包&#xe6b9;
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。在 SegmentFault,学习技能、解决问题
每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。
问题对人有帮助,内容完整,我也想知道答案
问题没有实际价值,缺少关键内容,没有改进余地
开发的程序要运行在多平台,平时项目组在win下开发,经常有文件名大小写问题到其他平台发布时才会遇到。
如果能加一个判断大小写的函数,如果读取文件时大小写不一致直接报错,这样在开发阶段就可以直接发现了。
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
#include &stdio.h&
#include &stdlib.h&
#include &windows.h&
#include &shlwapi.h&
#pragma comment(lib, "shlwapi")
BOOL PathFileExistsSensitive(LPCTSTR szPath)
BOOL bResult = FALSE;
WIN32_FIND_DATA wfd = { 0 };
HANDLE hFind = FindFirstFile(szPath, &wfd);
if (hFind != INVALID_HANDLE_VALUE)
LPCTSTR pszName = PathFindFileName(szPath);
bResult = StrIsIntlEqual(TRUE, pszName, wfd.cFileName, MAX_PATH);
FindClose(hFind);
int main(int argc, char *argv[])
TCHAR szPath1[] = "C:\\Windows\\NOTEPAD.EXE";
TCHAR szPath2[] = "C:\\Windows\\notepad.exe";
printf("%d\n", PathFileExistsSensitive(szPath1));
printf("%d\n", PathFileExistsSensitive(szPath2));
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
题主似乎改了题目,原回答已经不太适用了,而@StackOverflow的回答亲测可以。
实际上PHP中也就是调用FindFirstFile来搞的:
源文件:zend_virtual_cwd.c.
--- 以下是原回答:
windows下可用win32的GetFullPathName的API,譬如php中的realpath就是用的这个:
TSRM_API char *realpath(char *orig_path, char *buffer)
int ret = GetFullPathName(orig_path, _MAX_PATH, buffer, NULL);
if(!ret || ret & _MAX_PATH) {
return NULL;
php-srcTSRMtsrm_win32.c
同步到新浪微博
分享到微博?
关闭理由:
删除理由:
忽略理由:
推广(招聘、广告、SEO 等)方面的内容
与已有问题重复(请编辑该提问指向已有相同问题)
答非所问,不符合答题要求
宜作评论而非答案
带有人身攻击、辱骂、仇恨等违反条款的内容
无法获得确切结果的问题
非开发直接相关的问题
非技术提问的讨论型问题
其他原因(请补充说明)
我要该,理由是:
在 SegmentFault,学习技能、解决问题
每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。c#如何不区分大小写判断字符串是否包含字串 - 为程序员服务
为程序员服务
c#如何不区分大小写判断字符串是否包含字串
c#的string类有Contains()方法,但是此方法是区分大小写的,当我们需要不区分大小写时,怎么办呢?
我们可以使用IndexOf() 将第二个参数设置为StringComparison.OrdinalIgnoreCase,如下:
string title = &STRING&;
bool contains = title.IndexOf(&string&, StringComparison.OrdinalIgnoreCase) &= 0;
我们也可以封装一下这个方法,使其成为string的扩展方法,以方便使用:
public static bool Contains(this string source, string toCheck, StringComparison comp) {
return source.IndexOf(toCheck, comp) &= 0;
string title = &STRING&;
bool contains = title.Contains(&string&, StringComparison.OrdinalIgnoreCase);
您可能的代码
相关聚客文章
相关专栏文章

我要回帖

更多关于 ios 搜索不区分大小写 的文章

 

随机推荐