字母易位词

字符串
5

【描述】

定义和调用函数:int isAnagram(char *str1, char *str2),检查两个单词是否是字母易位词,若是易位词,返回1,否则返回0。两个单词如果包含相同的字母,次序不同,则称为字母易位词(anagram)。例如,“silent”和“listen”是字母易位词。

【输入】

输入有两行,分别对应两个单词。

【输出】

若两个单词是字母易位词,输出true,否则输出false

【输入示例】

silent

listen

【输出示例】

true

【来源】

《程序设计基础——以C为例》第6章上机实验题12





#include<stdio.h>
#include<string.h>

	int isAnagram(char str1[], char str2[]){
		if(strlen(str1)!=(strlen(str2)))
			return 0;
		int l=strlen(str1);
		int i,j,num[100]={0},sum=0;
		for(i=0;i<l;i++){
			for(j=0;j<l;j++){
				if(str1[i]==str2[j]){
					num[i]=1;
					break;      }
		}
		}
		for(i=0;i<l;i++){
			sum=sum+num[i];
		}
		if(sum!=l)
			return 0;
		else
			return 1;
	}   //我这里的函数不能完全判断
		//当abb,abc时,也会返回1,但是abc,abb时返回0
		//所以要左右交换做两次,若都为1,则才符合! 
	int main(){
		char s1[100],s2[100];
		gets(s1);
		gets(s2);
		if(isAnagram(s1,s2)&&isAnagram(s2,s1)){
			printf("true");
		}
		else
			printf("false");
	} 


发布了78 篇原创文章 · 获赞 21 · 访问量 16万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览