版本,虽然由 Builder公司出品,但实际上 Builder公司只不过做了一个IDE而已,虽然和
VC“那强大的功能”比起来有限简陋,但实际上是把更大的空间留给了开发者,可以更
自由的发挥,在物理层硬件开发领域,还是汇编和C的天下(注意这里的C指的是C、
C++,和VC没什么事,原因见下文),所以如果你是正规攻读计算机技术,走正宗的C语
言开发路线,那当然是选C++。
VC,VC全称可视化C语言,是正宗C语言的另一个升级版本吗?答案是否定的!
VC只不过引用了传统C语言的语法,而核心的构假和思想完全是MS的Windows,
从所谓的控件、窗体、模块、API、DLL、Active、IEO、WMPO等等,有哪一个是从C
里面扩展而来的?这些东西完全就是Windows系统的一部分!
RegSetValueEx第5个参数定义错误,如下:可以正确编译通过。# include <string.h>
# include <windows.h>
# include <stdio.h>
int main()
{
char regname[]="Software\\Microsoft\\Windows\\CurrentVersion\\Run"/*开机启动路径*/
HKEY hkResult
unsigned char p[]="c:\\for.exe"
unsigned char *q
q=(unsigned char *)&p//强制转换
int ret=RegOpenKey(HKEY_LOCAL_MACHINE,regname,&hkResult)
ret=RegSetValueEx(hkResult,"jjj",0,REG_EXPAND_SZ,q,25)
if(ret==0)
{
printf("success to write run key\n")
RegCloseKey(hkResult)
}
else
{
printf("failed to open regedit.%d\n",ret)
return 0
}
}
1、先对源字符串检索是否存在子字符串"__a"2、如果存在,肯定知道存在位置;
3、将源字符串从1开始到存在位置取出,即可。
函数名: strstr
功 能: 在串中查找指定字符串的第一次出现
用 法: #include <string.h>
char *strstr(char *str1, char *str2)
程序例:
#include <stdio.h>
#include <string.h>
int main(void)
{
char *str1 = "Borland International", *str2 = "nation", *ptr
ptr = strstr(str1, str2)
printf("The substring is: %s\n", ptr)
return 0
}
要返回第二个字符串在第一个的位置:
k=strstr(s1,s2)-s1+1 //长度
因此取 第一个字符串从长度为 k-1的字符即可。
char fmt[10]
char substr[100]
sprintf(fmt,"%ds",k-1)
sprintf(substr,fmt,str)即可。
#include<string.h>
main()
{
char fmt[10]
char substr[100]
char str1[30]="dwoieocisoeklikoi__abb"
char str2[60]="xejwoiwardwoieldkwieow__amq"
char str3[10]="__a"
k=strstr(str1,str3) - str1
sprintf(fmt,"%ds",k)
sprintf(substr,fmt,str1)
printf("1 substring is %s",substr)
k=strstr(str2,str3) - str2
sprintf(fmt,"%ds",k)
sprintf(substr,fmt,str2)
printf("2 substring is %s",substr)
}