首先
int str1length = strlen(str1);
int str2length = strlen(str2);
如果不一样,就不用比了
if(str1 != str2) return 不相匹配
如果相等
int i = 0;
while( i < str1length)
{
if(str1[i] != str2[i])
{
return 不相匹配
}
i++;
}
else
return 相等
#include <stdioh>
#include <stringh>
main()
{
void sort(char name[],int n),print(char name[],int n);
char name[10], str[10][10];
int n, k;
printf("请输入要比较的字符串个数:\n");
scanf("%d",&n);
printf("请输入要比较的字符串:\n");
for(k=0;k<n;k++)
{
scanf("%s",& str[k]);
name[k]=str[k];
}
sort(name,n);
printf("比较的结果为:\n");
for(k=0;k<n;k++)
printf("%s\n",name[k]);
}
void sort(char name[],int n)
{
char temp;
int i, j, k;
for(i=0;i<n-1;i++)
{
k=i;
for(j=i+1;j<n;j++)
if(strcmp(name[k],name[j])>0)
k=j;
if(k!=i)
{temp=name[i];name[i]=name[k];name[k]=temp;}
}
}
凑乎能跑了,你这程序写的,不敢恭维
#include"stdioh"
int mmm(charaa[20],charbb[20],int c)
{
int a;
for(a=0;a<20;a++)
{
if(aa[a]>bb[a])
{
c+=1;
return(c);
//break;
}
if(aa[a]<bb[a])
{
return(c);
//break;
}
}
}
void main()
{charstr[1][20];
int a,b,c,d,e,f,h,i,j;
printf("please input five char:\n");
/scanf("%s%s%s%s%s",str[0],str[1],str[2],str[3],str[4]);/
scanf("%s",str[0]);
for(i=0;i<5;i++)
{a=mmm(str[0],str<i>,a);}
//for(i=0;i<5;i++)
//{b=mmm(str[1],str<i>,b);}
//for(i=0;i<5;i++)
//{c=mmm(str[2],str<i>,c);}
//for(i=0;i<5;i++)
//{d=mmm(str[3],str<i>,d);}
//for(i=0;i<5;i++)
//{e=mmm(str[4],str<i>,e);}
/printf("a=%d\nb=%d\nc=%d\nd=%d\ne=%d\n",a,b,c,d,e);/
printf("%d\n",a);
}
扩展资料:
printf用法:
printf()函数的调用格式为:printf("<格式化字符串>",<参量表>)。
其中格式化字符串包括两部分内容:一部分是正常字符,这些字符将按原样输出;另一部分是格式化规定字符,以"%"开始,后跟一个或几个规定字符,用来确定输出内容格式。
参量表是需要输出的一系列参数,其个数必须与格式化字符串所说明的输出参数个数一样多,各参数之间用","分开,且顺序一一对应,否则将会出现意想不到的错误。
比如:
int a=1234;
printf("a=%d\n",a);
输出结果为a=1234。
scanf()是C语言中的一个输入函数。与printf函数一样,都被声明在头文件stdioh里,因此在使用scanf函数时要加上#include<stdioh>。
int scanf(const charrestrict format,);
函数scanf()是从标准输入流stdin(标准输入设备,一般指向键盘)中读内容的通用子程序,可以说明的格式读入多个字符,并保存在对应地址的变量中。
如:
scanf("%d%d",&a,&b);
函数返回值为int型,如果a和b都被成功读入,那么scanf的返回值就是2。
实际上这个题目就是要手动实现strcmp这个函数的功能,在面试中可能会遇到类似的问题(strcpy等)
#include <stdioh>// 当s1 > s2 的时候,会返回正数
// 当s1 < s2 的时候,会返回负数
// 当s1 == s2 的时候,会返回 0
int Mystrcmp(char s1, char s2)
{
if (s1 == NULL || s2 == NULL) // 字符串为空
return 0;
while(s1 == s2 && s1 != '\0')
{
s1++;
s2++;
}
return s1 - s2;
}
// 给了一个测试例子~可以自己写几个例子测试一下。
int main()
{
printf("%d\n", Mystrcmp("ab", "aa"));
}
以下代码就可解决此问题:
//#include "stdafxh"//If the vc++60, with this line#include "stdioh"
int mystrcmp(const char s1,const char s2){
while(s1 && s2 && !(s1-s2))
s1++,s2++;
return s1-s2;
}
int main(void){//测试一下
char a[]="12378",b[]="1233467890",f;
if((f=mystrcmp(a,b))>0)
printf("a>b\n");
else if(f<0)
printf("a<b\n");
else printf("a=b\n");
printf("\n");
return 0;
}
1、打开VBA编辑界面。
2、首先先编写一个测试函数的框架,如下图所示。
3、接着定义两个字符串变量用来存放用来比较的两个字符串的。Dim str1 As StringDim str2 As String。
4、然后为定义好的两个字符串变量赋值。 str1 = "ABCD" str2="abcd"。
5、然后使用StrComp函数进行两个字符串比较,这个函数有三个参数,前两个参数是两个字符串,最后一个参数为1,是说明要进行字符串的比较,如果的不给第三个参数,那就是进行而二进制的比较。
6、最后点击运行查看结果。(结果为0说明两者相等,-1就是前者小于后者,1就是大于后者)。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)