當前位置:首頁 » 編程語言 » c語言指針逆序存放字元串
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言指針逆序存放字元串

發布時間: 2023-04-01 07:27:52

❶ 一道c語言編程:利用指針作函數參數,將從鍵盤輸入的字元串逆序存放,並輸出。我的答案運行之後沒有結果

完全按照你的意願
改的
問題1:你用指針pt傳遞數組a,但是在fun函數里,卻沒有使用該指針反而新建局部數組a;
問題2:fun函數里,定義的b數組,你是指定下標賦值的,缺少結束符『\0』,如果字元未滿,那麼輸出時無法判斷字元串結束符,這里我用memset函數把b每一個字元都初始成『\0』,你也可以在循環賦值結束後,在b最後一個字元後面再賦一個字元『\0』.注意定義字元數組,如希望放10個字元,建議定義11大小蔽租埋,因為要留1個『\0』
問題3:你的賦值循環for(i=0;i<10;i++),直接寫的宏螞上限10,如果輸入小於10字元。那麼就會取到空值。這里我用strlen函數讀取了a的字元長度作為上限
#include<stdio.h>
#include<string.h>
int main()
{
void fun(char *pt);
char a[10],*pt;
pt=a;
gets(a);
fun(pt);
puts(a);
return 0;
}
void fun(char *pt)
{
char b[10];int i;
memset(b,'型凱\0',sizeof(char)*10);
for(i=0;i<strlen(pt);i++)
b[strlen(pt)-1-i]=pt[i];
strcpy(pt,b);
}

❷ C語言編程,寫一個函數,使輸入的一個字元串按反序存放,在主函數中輸入和輸出字元

#include <stdio.h>

#include <string.h>

void input(char st[]);//定義輸入函數

void reverse(char st[]);//定義反序函數

int main()

{

char s[20];

input(s);//調用輸入函數

printf("Original string: %s ", s);//輸出原字元串

reverse(s);//調用反序函數

printf("New string: %s ", s);//輸出反序後的字元串

return 0;

}

void input(char st[])

{

printf("Please enter string: ");

gets(st);

}

//反序函數

void reverse(char st[])

{

int n=strlen(st);

for (int i=0, j=n-1, t; i<(n/2); t=st[i], st[i]=st[j], st[j]=t, i++, j--);

}

❸ c語言程序 輸入一字元串存入數組中,逆序存放並輸出

對鍵盤輸入的字元串進行逆序,逆序後的字元串仍然保留在原來的字元數組中,最後輸出。(不得調用任何字元串處理函數),例如:

輸入

hello

world

輸出

dlrow

olleh

(3)c語言指針逆序存放字元串擴展閱讀:

字元串在存儲上類喊槐似字元數組,它每一位單個元素都是能提取的,字元串的零位是它的長度,如s[0]=10,這提供給我們很多方便,例如高精度運算時每一位都能轉化為數字存入數組。

通常以串的整體作為操作對象,如:在串中查找某個子串、求取一個子串、在串的某個位置上插入一個子串以及刪除一個子串等。兩個字元串相等的充要圓仿條件是:長度相等,並且各個對應位置上的字元都相等。設p、q是兩個串,求q在p中首次出現的位置的運算叫做模式匹配。

❹ C語言編程:用指針接收鍵盤輸入的字元串並逆序輸出到屏幕(串長度小於100),怎麼做

代碼文本:

#include "stdio.h"

int main(int argc,char *argv[]){

char s[100],*p;

printf("Please enter a string... ");

scanf("%99s",s);//輸入字元串

for(p=s;*p!='';p++);

for(p--;p>=s;p--)

printf("%c",*p);

putchar(' ');

return 0;

}

(比較簡單,但若幫助了你,還是點一下採納吧)

❺ C語言編程如何將字元串中的各字元逆序存放

#include <stdio.h>
#include <string.h>
int main(void)
{
char s1[256],s2[256];
int i,j=0;
gets(s1);
for(i=strlen(s1)-1;i>=0;i--)
{
s2[j++]=s1[i];
}
puts(s2);
return 0;
}
這樣就把字元串s1倒序存放去s2了,輸出了s2.