当前位置:首页 » 编程语言 » 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.