我需要比较用户在字符串2字符串中输入值而不使用Inbuilt函数或c中的(strcmp)。我使用其他语言使用第一个程序它不工作所以我创建了第二个在c中工作,有没有更好的方法没有while循环:
这个问题将帮助那些掌握一些基本知识的人和有良好的理解知识,如javascript或任何其他oops语言程序员突然有兴趣学习c编程概念c字符串操作如何与其他语言不同,并希望使用字符串不使用c中的任何内置函数进行操作。
#include<stdio.h>
void main()
{
char ch[80];
printf("Enter Your name:" );
if(scanf("%s",ch) =="hello")
{
printf("hello");
}
else if(scanf("%s",ch) =="saythanku")
{
printf("saythanku");
}
else
{
printf("none");
}
}
Working:
#include<stdio.h>
void main()
{
printf("enter your name");
char ch[80];
scanf("%s",ch);
int a=compare(ch,"hello");
if(a==0)
{
printf("hello");
}
else
{
printf("not hello");
}
}
int compare(char a[], char b[])
{
int c = 0;
while( a[c] == b[c] )
{
if( a[c] == '\0' || b[c] == '\0' )
break;
c++;
}
if( a[c] == '\0' && b[c] == '\0' )
return 0;
else
return -1;
}
简单的任何其他比较
答案 0 :(得分:1)
正如PaulMcKenzie所提到的,似乎你将其他语言的概念直接应用于c编程语言,主要是通过猜测。如果您没有书籍,请至少使用谷歌查找一些教程。例如,我输入了“c strings introduction”并获得了这个link,这解释了你目前遇到的很多问题。
以下内容无法回答您的问题,甚至无法解决您的作业,但也许它会为您提供足够的提示。
c中的“字符串”是一个字符数组,以0
结尾(通常写为'\0'
。
字符串文字用双引号括起来,即"hello"
(不是'hello'
)。
索引可以访问字符串的单个字符,例如char c = ch[0]
或char c = ch[5]
的{{1}}。
循环遍历字符串字符并查找int i=3; char c = ch[i]
的循环可能如下所示:
A
这不是一个答案;只是我也是初学者(尽管在C以外的其他领域);和初学者应该帮助初学者:-) 玩得开心学习C,使用谷歌和好书,并注意它需要一些时间。