以前一直用vc6.0,现在试着用了visual studio,发现自己不懂的不少,例如scanf,要写成scanf_s.下面这个程序在vc6.0运行正常,但在visual studio却运行不出结果,运行时,输入第一个字符串,按下回车,出现result:0.(可是我的第二个字符串还没有输入)
程序的功能是实现字符串比较功能,用一级指针,做函数参数传递。
//自己编写strcmp程序
#include<stdio.h>
void main()
{
int strcmp(char *p1, char *p2);
int m;
char str1[20], str2[20], *p1, *p2;
printf(&quot;input two strings:\n&quot;);
scanf_s(&quot;%s&quot;, str1);
scanf_s(&quot;%s&quot;, str2);
p1 = &str1[0];
p2 = &str2[0];
m = strcmp(p1, p2);
printf(&quot;result: %d\n&quot;, m);
}
int strcmp(char *p1, char *p2)
{
int i;
i = 0;
while (*(p1 + i) == *(p2 + i))
{
if (*(p1 + (i++)) == '\0')
return (0);
}
return(*(p1 + i) - *(p2 + i));
}
烦请高手赐教,欢迎各种喷……
|
|