c語言判斷字元串是否為迴文
Ⅰ c語言判斷是否為迴文
首先清楚什麼是迴文。。。我們稱正讀和反讀都相同的字元序列為「迴文」,如「abba」、「abccba」、12321、123321是「迴文」。
然後再看程序,把長度為n的字元串的每一個字元排下標,即從0到n-1,要判斷是否迴文,就是把一串字母進行前後比對,即下標0的字元和下標為n-1的字元,1與n-2,2與n-3。。。
for
(i
=
0;
i
<
len
/
2;
i++)
{
if
(str[i]
!=
str[len-1-i])
{
break;
{{{{這里是什麼意思啊}}}}}}
//
這里是判斷不符號迴文的情況,只要兩個字元不符合,那這整個字元串就不是,所以break跳出循環判斷
}
}
if
(i
==
len
/
2)
{{{{我不懂這里是什麼意思}}}}}}
//
長度為n的字元串最多隻能比對len
/
2次,那麼如果每對都符合,那就是迴文啦
{
printf(「%s
shi
hui
wen.\n「,
str);
}
Ⅱ 判斷兩個字元串是否是迴文c語言
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int str_hw(char *str){ //定義迴文判斷函數
int number = strlen(str) - 1;
int i = 0;
for (i = 0; i < number; number -= 1){//for循環判斷是否否相等
if (str[i] == str[number]){i++;}
else{return 0;}
}
return 1;
}
int main(){
char arr[] = "cba";
printf("%d
", str_hw(arr));
return 0;
}
Ⅲ c語言判斷字元串是否為迴文
#include <stdio.h>
/*fun()函數:傳入一個字元數組,如果是迴文序列返回1,不是就返回0*/
int fun(char a[])
{
int i,j,n=0;
while(a[n]!='\0') n++; /*計算傳入字元串(數組)長度*/
n--; /*跳出while循環時 a[n]='\0',故n--*/
for(i=0,j=n;i<j;i++,j--)
if(a[i]!=a[j]) break;
if(i>=j) return 1;
return 0;
}
int main()
{
char str[20];
puts("輸入一個字元串:\n");
gets(str);
if(fun(str)) printf("%s 是迴文序列\n",str);
else printf("%s 不是迴文序列\n",str);
return 0;
}
Ⅳ 如何判斷一個字元串是不是迴文字元串
首先,理解什麼是迴文字元串,簡單的一句話概括就是關於中心左右對稱的字元串。例如:ABCBA或者AACCAA是迴文字元串;ABCCA或者AABBCC不是迴文字元串。
判斷方法就是,依次看兩端的字元是否相等。例如:ABCBA,第一個字元與最後一個字元相等,第二個字元與倒數第二個字元相等,第三個字元是中心字元,無需判斷。如果是AACCAA就要判斷。所以上面的字元串是迴文字元串。
以下是C語言實現判斷迴文字元串的代碼。
#include<stdio.h>
#include<string.h>
intmain(void)
{
chars[30];
intb=0;//1表示不是迴文字元串
puts("請輸入一個字元串:");
scanf("%s",s);
for(inti=0;i<strlen(s)/2;i++)
if(s[i]!=s[strlen(s)-i-1])
{
b++;
break;
}
if(b)
printf("這不是迴文字元串。");
else
printf("這是迴文字元串。");
return0;
}
Ⅳ 數據結構C語言 判斷指定字元串是否迴文怎麼寫
提示:實現本程序需要設計兩個函數。①主函數main,數據的輸入和輸出在該函數中完成。②自定義函數func,判斷串s是否為迴文。採用的方法是:用flag表示是否為迴文。用i從左向右掃描字元串s,用j從右向左掃描字元串s,若s[i]與s[j]不相等,則flag=0(表示不是迴文)並退出循環,否則,繼續比較直到i<j不成立。/*判斷指定字元串是否迴文*/#include
<stdio.h>int
func(char
*str){int
i,j,t,flag;
t=strlen(str);
for(i=0,j=t-1;i<=t/2;i++,j--)
{if(str[i]==str[j])
continue;
else
{
flag=0;
break;
}
}
if(i>=t/2)
flag=1;
return
flag;}void
main(){/********************blank********************/____________________;/*填空位置1:變數定義*/____________________;/*填空位置2:從鍵盤輸入需要判定的字元串*/____________________;/*填空位置3:調用func函數*/____________________;/*填空位置4:根據返回值flag的值,輸出判定結果*/}該演算法的時間復雜度是:____________________。
Ⅵ C語言怎麼判斷一個數是否是迴文數
所謂迴文數,就是說一個數字從左邊讀和從右邊讀的結果是一模一樣的,比如12321。
以下是判斷一個數是否為迴文數的代碼:
Ⅶ C語言編程:從鍵盤上輸入一個字串,判斷它是否迴文。
不用那麼麻煩,看看這種思路
一個字元串如果是迴文,就是兩端相對於中心位置對稱
如
123321
123-對稱點-321
12321
12---3(對稱點)--21
只需要拿左邊這半邊的字元,與右邊的比較,如果一樣,就是迴文
#include
#include
"string.h"
void
main()
{
int
x,i;
char
st1[100]={0};
gets(st1);
x=strlen(st1);
for(i
=
0;
i
<=
x/2;
i++)///比到一半就不比了,原理已講
{
if(st1[i]
!=
st1[x-i-1])///這就是比較兩端的字元
{
break;//不是迴文
}
}
if(i>
x/2)///沒執行break,就是迴文
printf("YES");
else
printf("NO");
}
Ⅷ C語言編寫一個程序,判斷輸入的一個字元串是否是迴文。
源代碼如下:
#include <stdio.h>
int main()
{
int n, reversedInteger = 0, remainder, originalInteger;
printf("輸入一個整數: ");
scanf("%d", &n);
originalInteger = n;
// 翻轉
while( n!=0 )
{
remainder = n%10;
reversedInteger = reversedInteger*10 + remainder;
n /= 10;
}
// 判斷
if (originalInteger == reversedInteger)
printf("%d 是迴文數。", originalInteger);
else
printf("%d 不是迴文數。", originalInteger);
return 0;
}
(8)c語言判斷字元串是否為迴文擴展閱讀
1、函數的返回值是通過函數中的return語句獲取的。
2、函數值的類型。
3、如果函數值的類型和return語句中表達式的值不一樣,則以函數類型為准。
4、如果調用函數中沒有return語句,並不帶回一個確定的用戶需要的值,函數不是不帶回值,而只是不帶回有用的值,帶回一個不確定的值。
Ⅸ c語言編程:判定一個字元是否是迴文串(迴文串是指從開頭讀和從末尾讀均為相同字元的字元串,例如:abcba
1、首先,在C語言軟體中,定義多個整型變數,保存程序中所需操作的數值。
Ⅹ c語言編程題 輸入一字元串,判斷該字元串是否為迴文。
#include <stdio.h>
#include<stdlib.h>
int main()
{
char a[100];
int i=0,j=0;
printf("請輸入字元串: ");
gets(a);
while(a[i]!='