| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 665 人关注过本帖
标题:字符数组判等函数
取消只看楼主 加入收藏
diaoxue
Rank: 1
等 级:新手上路
帖 子:142
专家分:0
注 册:2007-6-1
收藏
 问题点数:0 回复次数:4 
字符数组判等函数

写回文的程序,自己写了个字符数组判等函数
int Strequl(char str[],char str1[])
{
int i,j;
// int length0=strlen(str);
// int length1=strlen(str1);
// if(length0 != length1)return FALSE;
for(i=0,j=0;str[i]!='\0' && str1[j]!='\0';i++ ,j++)
{
if(str[i]!=str1[j])
return FALSE;
}
return TRUE;
}
大家看看有什么错啊 谢谢指点



下面是写的回文总的函数
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
#include <iostream.h>
#include <string.h>
#define MAX 1000
#define TRUE 1
#define FALSE -1

#define STACK_INIT_SIZE 100//初始分配量
#define STACKINCREMENT 10//分配增量

typedef struct ///////定义结构
{
char *base;
char *top;
char stacksize;
}SqStack;

void InitStack(SqStack &S)///初始化栈
{
S.base=(char *)malloc(STACK_INIT_SIZE *sizeof(char));
if(!S.base)exit(1);
S.top=S.base;
S.stacksize=STACK_INIT_SIZE;
}

int GetTop(SqStack &S,char &e)///获得栈顶元素
{
if(S.top==S.base)return 0;
e=*(S.top-1);
return e;
}

void Push(SqStack &S,char e)///入栈
{
if(S.top-S.base>=S.stacksize)
{
S.base=(char *)realloc(S.base,(S.stacksize+STACKINCREMENT)*sizeof(char));
if(!S.base)exit(1);
S.top=S.base+S.stacksize;
S.stacksize+=STACKINCREMENT;
}
*S.top=e;
S.top++;
}

int Pop(SqStack &S,char &e)///出栈
{
if(S.top==S.base)exit(1);
e=* --S.top;
return e;
}
bool StackEmpty(SqStack &S)//判空
{
if(S.base==S.top)return true;
return false;
}

/*void Conversion()
{
int N,e;
SqStack S;
InitStack(S);
printf("input the number which you want to conver:");
scanf("%d",&N);
while(N)
{
Push(S,N%2);
N=N/2;
}
while(!StackEmpty(S))
{
Pop(S,e);
printf("%d",e);
}
}*/

int Strequl(char str[],char str1[])
{
int i,j;
// int length0=strlen(str);
// int length1=strlen(str1);
// if(length0 != length1)return FALSE;
for(i=0,j=0;str[i]!='\0' && str1[j]!='\0';i++ ,j++)
{
if(str[i]!=str1[j])
return FALSE;
}
return TRUE;
}

int Huiwen()
{
int i;
char ch;
char str[MAX],str1[MAX];
SqStack S;
InitStack(S);
printf("input your string:");
gets(str);
int length=strlen(str);
for(i=0;i<length;i++)
cout<<str[i];
cout<<endl;
int j=0;
// char str1[length];
for(i=0;i<=length;i++)
Push(S,str[i]);
while(!StackEmpty(S))
{
Pop(S,ch);
str1[j]=ch;
j++;
}
for(i=1;i<=length;i++)
cout<<str1[i];
cout<<endl;
// getch();
// cout<<strcmp(str,str1);
cout<<Strequl(str,str1);
return 0;
}

int main()
{
// Conversion();
Huiwen();
return 0;
}

[此贴子已经被作者于2007-11-18 14:23:49编辑过]

搜索更多相关主题的帖子: 函数 字符 
2007-11-18 14:17
diaoxue
Rank: 1
等 级:新手上路
帖 子:142
专家分:0
注 册:2007-6-1
收藏
得分:0 
回复:(aipb2007)strlen都知道怎么不用strcmp

我也试了,可总是输出1
我就写了个函数,还是不行


上善若水,水善利万物而不争,处众人之所恶
2007-11-18 16:45
diaoxue
Rank: 1
等 级:新手上路
帖 子:142
专家分:0
注 册:2007-6-1
收藏
得分:0 
回复:(nuciewth)在C区说了一次,想不到还是这么长的...
尊敬的BZ:
后面那么长的东西可以不看的
我想问的是上面那个函数有没有问题

上善若水,水善利万物而不争,处众人之所恶
2007-11-18 16:48
diaoxue
Rank: 1
等 级:新手上路
帖 子:142
专家分:0
注 册:2007-6-1
收藏
得分:0 
我自己改了好多遍了
我把str和str1都输出了,是对的
但是就是不能显示判等的结果

上善若水,水善利万物而不争,处众人之所恶
2007-11-18 16:55
diaoxue
Rank: 1
等 级:新手上路
帖 子:142
专家分:0
注 册:2007-6-1
收藏
得分:0 

后来我改了啊
str是数组,不能用strlen函数吧
我改了后还是有问题
望各位高手指点啊


上善若水,水善利万物而不争,处众人之所恶
2007-11-20 09:03
快速回复:字符数组判等函数
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.051609 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved