几个函数 strrchr,strchr,strtok,getOpenFilename。
2013-04-28 09:29
274 查看
几个函数 strrchr,strchr,strtok,getOpenFilename。
(2012-04-19 20:11:26)转载▼
标签: 杂谈 | 分类: C |
函数简介
函数名称: strrchr函数原型:char*strrchr(char *str, char c);
所属库: string.h
函数功能:查找一个字符c在另一个字符串str中末次出现的位置(也就是从str的右侧开始查找字符c首次出现的位置),并返回该位置。如果未能找到指定字符,那么函数将返回NULL。
int main()
{
char st[] = "D:\\code From JUNTAO\\bvh_player\\bvh files";
//char* c = '\\';
char* ptr ;
ptr = strrchr(st,'\\');
if(ptr)
printf("The character \ is at position: %s\n",ptr);
else
printf("The character was not found\n");
return 0;
}
输出结果:The character is at position:\bvh files
// 本意是查找字符串中的反向的第一个反斜杠位置,但是必须要加上转义符\,即\\.
类似函数 输出结果: The character isat position:\code From JUNTAO\\bvh_player\\bvh files
===============================================================================================
strtok
原型 char *strtok(char *s, constchar *delim);
编辑本段功能
分解字符串为一组字符串。s为要分解的字符串,delim为分隔符字符串。编辑本段说明
strtok()用来将字符串分割成一个个片段。参数s指向欲分割的字符串,参数delim则为分割字符串,当strtok()在参数s的字符串中发现到参数delim的分割字符时则会将该字符改为\0 字符。在第一次调用时,strtok()必需给予参数s字符串,往后的调用则将参数s设置成NULL。每次调用成功则返回被分割出片段的指针。int main()
{
char st[] = "D:\\code From JUNTAO\\bvh_player\\bvh files";
//char* c = '\\';
char separater[] = "\\";
char* ptr ;
ptr = strtok(st,separater);
if (ptr)
printf("%s\n", ptr);
ptr = strtok(NULL,",");
if (ptr)
printf("%s\n", ptr);
return 0;
}
第一次输出: D:
第二次输出:code From JUNTAO\bvh_player\bvh files
======================================================================================
GetOpenFileName
函数功能:该函数创建一个Open公共对话框,使用户指定驱动器、目录和文件名、或使用户打开文件。函数原型:BOOLGetOpenFileName(LPOPENFILENAME Ipofn);
参数:
Ipofn:指向包含初始化对话框的信息的一个OPENFILENAME结构。当OpenfileName函数返回时,此结构包含有关用户文件选择的信息。
返回值:如果用户指定了一个文件名,点击OK按钮,返回值为非零。由OPENFILENAME结构的IPstrFile成员指向的缓冲区含有全路径和用户指定的文件名。如果用户取消或关闭Open对话框或错误出现,返回值为零。若想获得更多的错误信息,请调用CommDlgExtendedError函数。
if ( (key == 'L') || (key == 'l') )
{
#ifdef WIN32
const int file_name_len = 256;
char file_name[ file_name_len ] ="";
OPENFILENAME open_file;
memset( &open_file, 0, sizeof(OPENFILENAME) );
open_file.lStructSize = sizeof(OPENFILENAME);
open_file.hwndOwner = NULL;
open_file.lpstrFilter = "BVH Motion Data(*.bvh)\0*.bvh\0All (*.*)\0*.*\0";
open_file.nFilterIndex = 1;
open_file.lpstrFile = file_name;
open_file.nMaxFile = file_name_len;
open_file.lpstrTitle = "Select a BVH file";
open_file.lpstrDefExt = "bvh";
open_file.Flags = OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST |OFN_HIDEREADONLY;
BOOL ret = GetOpenFileName( &open_file );
if( ret )
{
if ( bvh )
delete bvh;
bvh = new BVH( file_name );
if (!bvh->IsLoadSuccess() )
{
delete bvh;
bvh = NULL;
}
animation_time= 0.0f;
frame_no = 0;
}
#endif
}
分享: 分享到新浪Qing
喜欢
阅读┊
评论 ┊收藏 ┊转载 ┊ 喜欢▼ ┊打印┊举报
已投稿到: | 排行榜 |
前一篇:error LNK2005: _strncmp already defined
后一篇:[转载]表示三维运动的BVH文件格式解析
相关文章推荐
- MSDN上的GetOpenFileName()函数验证
- GetOpenFileName函数
- MSDN上的GetOpenFileName()函数验证
- 使用GetOpenFileName和GetSaveFileName函数会改变当前目录的问题
- C++ 选择文件对话框 函数 GetOpenFileName 使用的一个demo
- GetOpenFileName函数
- FileDialog::getOpenFileName()函数用法及FindDialog::FindDialog(QWidget *parent) :QDialog(parent)
- 几个简单但是不太常用的函数:cprintf, clrscr, strrev, cin.getline, strchr, strstr
- GetOpenFileName 函数打开多个选择文件
- 关于OpenWrt metadata.pl脚本文件中的几个函数说明_part1
- GetOpenFileName 多选
- MFC几个常用函数:OnCreate和OnInitialUpDate,GetActiveFrame和MDIGetActive,Invalidate、SetModifiedFlage、UpdateAll
- Android 内部存储相关的函数(getCacheDir,getDir, getFileStreamPath,getFilesDir,openFileInput, ...)
- 打开文件对话框GetOpenFileName Win32, PPC, Smartphone上的异同
- 如何得到通过GetOpenFileName选择的多个文件的文件名
- 使用GetOpenFileName 选择文件夹
- 使用GetOpenFileName创建“选择文件”对话框
- 子类化GetOpenFileName/GetSaveFileName, 以及钩子函数OFNHookProc的使用的简要说明
- 【转】如何得到通过GetOpenFileName选择的多个文件的文件名
- MFC几个常用函数:OnCreate和OnInitialUpDate,GetActiveFrame和MDIGetActive,Invalidate、SetModifiedFlage、UpdateAll