1. 程式人生 > >C語言中字串的輸入問題

C語言中字串的輸入問題

在C語言的字串輸入中,定義一個char型的字串:

#define len 1024
char a[len];
gets(a);
puts(a);

如果用while(1)迴圈,那麼清理鍵盤快取很有必要,否則在上一次gets中輸入的回車鍵會計算到下一個gets中導致錯誤。

清理鍵盤快取的程式碼是rewind(stdin);

下面是一個判斷輸入字串是否是迴文字串的程式

//判斷輸入的一串字元是否都是迴文
#include <stdio.h>
#include <string.h>
#define len 1024
int main()
{
    while(1)
    {
        char a[len],*pstart,*pend;
        printf("Please input a string:");
        rewind(stdin);
        gets(a);
        int length=strlen(a);
        pstart=a;
        pend=a+length-1;
        while((*pstart==*pend)&&(pstart<pend))
        {
            pstart++;
            pend--;
        }
        if(pstart<pend)
            printf("這不是一個迴文字串!");
        else
            printf("這是一個迴文字串!");
        printf("是否退出?\n1:退出\n2:繼續\n");
        int i;
        scanf("%d",&i);
        if(i==1) break;
    }
}


相關推薦

C語言字串輸入問題

在C語言的字串輸入中,定義一個char型的字串: #define len 1024 char a[len]; gets(a); puts(a); 如果用while(1)迴圈,那麼清理鍵盤快取很有必要,否則在上一次gets中輸入的回車鍵會計算到下一個gets中導致錯誤。 清理

C語言輸入方式

讀取 緩沖區 lock 回車 scanf() spa sdn enter 回車符 在c語言中,有gets()、scanf()、getchar()等輸入方式,但是不同的方式處理的方式不同。 scanf()讀取時遇見tab、space、enter時會結束讀取,不會舍棄最後的回車

記錄一下C語言字串的相關問題!

最近在努力提高自己程式設計水平,想著先把C語言溫習一下吧! 結果發現好久不程式設計,大一學的C語言全還給老師了!只能邊搜尋,邊寫了,記錄我的錯誤!都是老師講過的,當時太年輕沒實踐!! 所以學程式碼還得多寫啊!! 主要集中處理字串這一塊的內容! 問題1:讀取問題 char plai

C語言字串輸入fgets()函式

C語言的字串輸入fgets()函式 圖片來源-百度圖片 fgets()函式簡介 讀字串函式fgets()的功能是從指定的檔案中讀一個字串到字元陣列中,函式呼叫的形式為: fgets(字元陣列名,n,檔案指標),要從鍵盤輸入時檔

C語言輸入輸出函式(學習筆記)

文章目錄 c語言中的基本輸入與輸出函式 1.格式化輸入輸出函式 1.1printf()函式 1.2scanf()函式 2.非格式化的輸入輸出函式 2.1puts()和gets()函式

C語言輸入輸出流和緩衝區(重點)詳解

導讀: C語言中我們用到的最頻繁的輸入輸出方式就是scanf()與printf()。 scanf(): 從標準輸入裝置(鍵盤)讀取資料,並將值存放在變數中。 printf(): 將指定的文字/字串輸出到標準輸出裝置(螢幕)。注意寬度輸出和精度 輸出控制。 C語言藉助了相應的緩衝區

C語言字串賦值處理方式

C語言中,字串可以賦值給字元指標變數,或者將字串用字元陣列儲存。因為c語言沒有直接對字串提供語法糖方面的支援。而且C標準庫很多方法處理字串是以空字元結尾為前提的,這個必須要記住。 char *p,a='5'; p=&a;

關於c語言字串的拷貝用strncpy還是strcpy

看到一篇關於c語言中字串拷貝的文章https://blog.csdn.net/stpeace/article/details/22581763strncpy並沒有拷貝串後的\0字元,而strcpy卻拷貝了。這充分說明,strncpy是為拷貝字元而生的,而strcpy是拷貝字串

C語言字串結束符'\0'

轉自:http://www.cnblogs.com/kaituorensheng/archive/2013/12/09/3464462.html   本質 '\0'就是8位的00000000,因為字元型別中並沒有對應的這個字元,所以這麼寫。'\0'就是 字串結束標誌。

C語言字串常量到底存在哪了?

常量儲存總結 區域性變數、靜態區域性變數、全域性變數、全域性靜態變數、字串常量以及動態申請的記憶體區 1、區域性變數儲存在棧中 2、全域性變數、靜態變數(全域性和區域性靜態變數)儲存在靜態儲存區 3、new申請的記憶體是在堆中 4、字串常量也是儲存在靜態儲存區 補充說明:

C語言字串與整數的相互轉換

C語言提供了幾個標準庫函式,可以將任意型別(整型、長整型、浮點型等)的數字轉換為字串,下面列舉了各函式的方法及其說明。 # include <stdlib.h> 將數字轉換為字串   ● itoa():將整型值轉換為字串。   ● ltoa():將長整

c語言統計輸入的行數、單詞數與字元數

來源:《c程式設計語言》 功能需求: 寫個函式,用於統計輸入的行數、單詞數與字元數。這裡對單詞的定義比較寬鬆,它是任何其中不包含空格、製表符或換行符的字元序列。 程式碼如下: #include <stdio.h> #define IN 1 #define OUT 0 void wc()

C語言字串的幾種定義方式和有沒有’\0‘

( 主要解決 什麼時候是 “abcd\0” 什麼時候是 “abcd” 的問題 ) 幾種常用方式: 1.char* str = “abcd”; 2.char str[] = { “abcd” }; 3.char str[] = { ‘a’, ‘b’, ‘c

C語言字串與各數值型別之間的轉換

c語言的演算法設計中,經常會需要用到字串,而由於c語言中字串並不是一個預設型別,其標準庫stdlib設計了很多函式方便我們處理字串與其他數值型別之間的轉換。首先放上一段展示各函式使用的程式碼,大家也可以copy到自己的機器上執行觀察#include <stdio.h&g

C語言字串的三種表示方法

1.在C語言中,是將字串作為字元陣列來處理的,字串是逐個存放到陣列元素中的,例如用一個一維的字元陣列存放字串"I am a boy.",如下程式碼:char c[12] = {'I','a','m','a','b','o','y','.'};這個字串的實際長度是11,陣列長度

C語言字串常量與字元陣列

字串常量與字元陣列的關係在C語言中沒有專門的字串變數,如果想將一個字串存放在變數中以便儲存,必須使用字元陣列,即用一個字元型陣列來存放一個字串,陣列中每一個元素存放一個字元。例如“char a[10]="love".”

C語言怎樣定義一個字串輸入輸出

在C語言中沒有字串型別,用字元陣列處理字串 字元陣列定義:char 陣列名 [常量表達式][常量表達式] 說明:一維字元陣列,用於儲存和處理一個字串 。二維字元陣列,用於同時儲存和處理多個字串 輸入輸出方法:逐個字元輸入輸出:%c    整個字串輸入輸出:%s 一  :用s

C語言字符輸入問題

nbsp clas 輸入緩沖 show bsp 解決 har 問題 c語言 先上例題,一道太水太水的題, http://acm.hdu.edu.cn/showproblem.php?pid=1170 讓做一個簡單的計算器。然而入坑了。 #include<stdio.

C語言字串的操

最近對於C語言接收到的資料(字串)處理比較多。 字串:零個或多個字元組成的有限序列。假設:S="abcd1234efghmn",其中S是串列埠,字串中的字元可以是字元、數字或其他字元。 #include <string.h> #include <stdio.h>

C語言:判斷輸入一行是否包含模式串

C語言:函式與程式結構11 #include<stdio.h> 2 #define MAXLINE 1000 /*最大輸入行長度 */ 3 4 int getline(char line[], int max); 5 int strindex(char source[], c