C語言,寫兩個函式,是刪除掉輸入字串中多餘的空格,保留空格(i am a t

2022-02-21 07:29:12 字數 3225 閱讀 4246

1樓:

dtya@zzu:~$ cat a.c

#include

#include

#include

//刪掉字串中多餘的空格

void trim(char a)

a[j-1]='\0';}}

}//大寫轉小寫

void lower(char a)

}int main()

dtya@zzu:~$ ./a.out

i  am a    teacher.

i am a  teacher.

i am a  teacher.

2樓:聽不清啊

#include"stdio.h"

int main()

{int i,j,k; char s="i    am a       teacher.";

for(i=0,j=0,k=1;s[i];i++)if(s[i]!=' '||k)

s[j++]=s[i];

k=s[i]!=' ';

s[j]='\0';

puts(s);

for(i=0;s[i];i++)

if(s[i]>='a'&&s[i]<='z')s[i]-=32;

puts(s);

system("pause");

return 0;

c語言輸入兩個數之間是用空格隔開還是用逗號

3樓:偽文藝

c語言輸入兩個數之間使用空格隔開還是使用逗號隔開主要取決於你在編寫程式時你的scanf語句。具體的區別如下:

1、使用scanf("%d,%d",&a,&b);語句進行輸入:

在輸入資料時,兩個資料中間需要加「,」,如「500,600」。

2、使用scanf("%d%d",&a,&b);語句進行輸入:

在輸入資料時,資料之間不可以用逗號分隔,只能用空白字元(空格或tab鍵或者回車鍵)分隔,如「500(空格)600」或「500(tab) 600」或「500(回車)600」等。

擴充套件資料

在輸入字元字元資料(%c)時,如果格式控制串中沒有非格式字元,就可以認為輸入的所有字元都是有效字元。

例如:1、使用scanf("%c%c%c",&a,&b,&c);語句進行輸入:

當輸入為d e f時,程式就會把「d」賦值給a,「(空格)」賦值給b,「e」賦值給c。此時,為保證程式的正確執行,我們在進行資料輸入時,需要連續輸入def(字元間無空格)。

2、使用scanf("%c%c%c",&a,&b,&c);語句進行輸入:

此時,輸入各資料之間可加空格,如d e f。

4樓:一起育兒說

c語言輸入兩個數之間是用空格隔開還是用逗號的解決方法如下:

這個是根據實際情況來決定的,就是是根據你的scanf來決定的。

你現在中間寫成了scanf("%d,%d",&a,&b);可以看到除了輸入兩個數字外還要加入逗號才行,所以現在你得加逗號才行。

如果想輸入500 600就可以的話,要寫成scanf("%d%d",&a,&b);注意把中間的逗號給去掉;一定要注意這個格式的問題,兩種輸入方法都行的。

5樓:梨子同志

我剛剛也是這樣,如果scanf裡面沒有空格或者加一個空格就可以正確輸出最大值,但是如果中間用的是逗號,就會出現把第一個輸入的值輸出來,沒有進行比較。我試了幾次之後,再試試加逗號的情況它就又行了…加逗號也能輸出正確的最大值,我在想是不是編譯器的問題

6樓:學科會社義主

這個取決於你的scanf;

你現在中間寫成了scanf("%d,%d",&a,&b);可以看到除了輸入兩個數字外還要加入逗號才行,所以現在你得加逗號才行;

如果想輸入500 600就可以的話,要寫成scanf("%d%d",&a,&b);注意把中間的逗號給去掉;

一定要注意這個格式的問題,兩種輸入方法都行的.

7樓:特莉艾拉

介個是根據你的 scanf("%d,%d",&a,&b);來判斷的。

這句話的意思是,按照「整數,整數"來獲得輸入,所以應該輸入500,600就對了。。。如果像樓上這樣 scanf("%d%d",&a,&b);,那麼只要你兩個數字之間有分隔符,逗號阿空格阿就都ok,500 600或者500,600都是對的撒

c語言 輸入一個字串,刪除中間多餘的空格

8樓:四舍**入

#include "stdio.h"

void main()

char s="i am a teacher!";

int i,j;

for(i=0;s[i];i++)

if(s[i]==32&&s[i+1]==32)/*如果字串中第i和i+1個是空格,就執行if中的語句*/

for(j=i;s[j];j++) /*此句是把2個空格換成一個,然後把空格之後的內容前移*/

printf("%s\n",s);

9樓:匿名使用者

#include

int main()

else

}printf("\n");

return 0;}/*

輸出:i   am    a           teacheri am a teacher*/

10樓:櫻花樹物語

迴圈查詢兩個連續空格" ",並把兩個連續空格轉換成一個空格,直到找不到兩個連續空格為止~!

11樓:魔法師00可可

vc6.0下測試通過

望樓主採納

#include

#include

void main()

ss[j]='\0';//新增字串結束符printf("%s",ss);}

12樓:匿名使用者

//把一個字串複製到另外一個字串。如果上一位置是空格,則buf不移動位置

char name=" am a teacher!";

char buf[100];

int j=0;

memset(buf,0,100);

for(int i=0;i

}buf[j]=0;

printf("%s",buf);

c語言中printf直接列印兩個函式介面的返回值問題

輸出應該是sunday monday 第一行 是定義一個靜態的指標字串!第3行是定義一個靜態函式 strcpy buf,msg index 函式的意思吧msg index 複製到buf字串裡,然後現在計入main函式,輸出 計入函式get day傳入引數0進入函式就是msg指標陣列msg第一個引數是...

C語言怎麼進行加法計算,輸入兩個整數,進行加減乘除四則運算的c語言程式怎麼寫啊,拜託了

回答首先定義兩個變數a和b。加法寫成a b。減法寫成a b。乘法寫成a b。除法寫成a b。取餘寫成a b。最後點選編譯執行即可看到相應的結果。更多5條 輸入兩個整數,進行加減乘除四則運算的c語言程式怎麼寫啊,拜託了 include int main c語言中的加減乘除和數學中的加減乘除一樣,不同在...

兩個for語句是怎麼執行的,C語言兩個for語句如何並列編寫?

迴圈語句for按照以下5個步驟執行 1 求解初值表示式。2 判斷迴圈條件表示式,如果值為真 非0 則執行for語句迴圈體內部的語句,然後執行第3步 如果值為假 0 則跳出迴圈,執行第 5 步。3 求解更新表示式。4 跳回第 2 步重複執行。5 迴圈結束,執行for迴圈體後面的語句。你說的是for迴圈...