C语言编程,写一个函数,使输入的一个字符串按反序存放,在主函数中输入和输出字符
函数声明最好放在main前面
scanf("%s",a); //这句改成这样
子函数中的数组a和main函数中的数组a, 并不是同一个数组
#include #include #define N 10void fanzhuan(char* a);int main() {int i;char a[N]={'\0'};printf("请输入字符串:");scanf("%s",a);fanzhuan(a);return 0;}void fanzhuan(char* a){int i;for(i=strlen(a)-1;i>=0;i--){printf("%c",a[i]);}}
#include
#include//使用字符串函数时头文件
int str(char a[20],char b[20])//定义两个字符型数组
{
int i, j, k;
j=strlen(a);//测试字符串长度;
i=0;
k=j-1;
while(i<j)
{
b[k]=a[i];//互换值;
i++;
k--;
}
return 0;
}
int main()
{
char c[20];
char d[20];
int i,l;
//gets(c);//输入字符串;
scanf("%s",c);
l=strlen(c);//测试字符串长度;
str(c,d);//调用函数;
for(i=0; i<l; i++)
{
printf("%c",d[i]);//输出数值;
}printf("
");
printf("%s",d);//直接输出字符串,此时输出的是字符数组名,而不是数组元素名;
return 0;
}
运行效果:
扩展资料:while语句若一直满足条件,则会不断的重复下去。但有时,需要停止循环,则可以用下面的三种方式:
一、在while语句中设定条件语句,条件不满足,则循环自动停止。
如:只输出3的倍数的循环;可以设置范围为:0到20。
二、在循环结构中加入流程控制语句,可以使用户退出循环。
1、break流程控制:强制中断该运行区内的语句,跳出该运行区,继续运行区域外的语句。
2、continue流程控制:也是中断循环内的运行操作,并且从头开始运行。
fan函数的实参char str1[20],是一个副本,这样做改变不了main()里的str1,当你调用时,fan()只是得到了str1的副本,你可以这么改,将void fan(char str1[20])改为
void fan(char *str1)
并将main()中的声明改为
void fan(char *str1);
并且,fan()函数中for(i=0,j=t-1;j=0;i++,j--)中间的j = 0是赋值,不是判定,且for语句的中间表达式是该循环,不结束的条件。因此,此句循环改为
for(i=0,j=t-1;j>=0;i++,j--)
问题在子函数中for循环的条件没写对,这样子写:
for(i=0,j=t-1;j>=0;i++,j--)注意j>=0的循环条件,你写的j=0会使程序不执行循环,直接退出。
for(i=0,j=t-1;j>=0;i++,j--) 循环那句改成这样
建议你用交换的算法去做,简单快捷
{
char temp = *(p + i);
*(p + i) = *(p + n - 1 -i);
*(p + n -1 - i) = temp;
}
知道怎么做了吧
c语言:定义一个函数,使我们输入一个数,然后再输出同样的数。
输入数字的函数一般不会这样写的,另外在主函数中也没有调用你的函数,需要修改。在手机上用易历知食软件里的微C程序设计来演示修正后的代码,供参考。手机上代码如下图:手机上运行效果如下图:
C语言中如何编写函数使输入的字符串的每个字符录入数组?
录入字符串部分:int copy(char*a,char*b)\/\/a,源字符串 b 目标字符串 char*c=a,*d=b;while(*c != '\\0' && *d != '\\0'){ if(*d == '\\0' && *a != '\\0'){ printf("源字符串长于目标字符串,复制失败");return 0;\/\/跳回主函数 } if(*d == '\\0')break;c++;d++...
编写完整程序,要求用函数实现功能。输入一个数,若它是奇数则打印出odd...
在编程中,编写一个完整的程序来判断一个数是奇数还是偶数是一个基本的练习。下面提供了一个简单的C语言示例。程序首先提示用户输入一个整数,然后通过调用一个名为fun的函数来判断这个数是奇数还是偶数。如果输入的数是奇数,程序将输出"odd",如果是偶数,则输出"even"。完整的C语言程序如下:include ...
请问用python制作一个程序,使得你输入某一个数字a,便产生一个a行a列的...
代码中,首先使用input函数让用户输入一个整数,并将其转换为整型后赋值给变量a。然后使用print函数输出a+1的结果。先从键盘输入5,就是给变量a赋值5,再输入6,就是给变量b赋值6。判断a是否大于b,如果成立,输出a,不成立输出b。不能使用保留字(已被Python语言系统本身赋予特定意义的单词)。Python...
写一个函数,使给定的一个矩阵数组转置,行列互换。 比如输入 1 2 3...
在编程领域,矩阵转置是一个常见的操作,它涉及将一个矩阵的行和列互换。例如,给定一个3x3的矩阵:1 2 3 4 5 6 7 8 9 转置后,其形式变为:1 4 7 2 5 8 3 6 9 实现这个功能的函数可以如下编写:c include <stdio.h> void matrix_transpose(void* arr, int n) { int i, j, t;...
求一c语言编程,使输入一字母后,把他变为其后第三个字母,比如a变成d...
include<stdio.h> void main(){char a,b;scanf("%c",&a);if(a>='a'&&a<='z'){ if('z'-a>=3)b=a+3;else b='a'+2-('z'-a);} printf("%c\\n",b);} 这个题关键在于怎么处理输入的数是x,y,z。当然也要考虑大小写问题,我这里只给出小写,相信大写的情况你会处理的...
写一个函数,使给定的一个矩阵数组转置,行列互换。 比如输入 1 2 3...
for(i=0;i<n;i++){for(j=0;j<i;j++){t=pn[i][j];pn[i][j]=pn[j][i];pn[j][i]=t;}}}int main(){int n,i,j;int **pn;scanf("%d",&n);pn=(int**)malloc(n*sizeof(int*)); \/\/动态分配n个int*的指针内存空间,用作二维数组的行指针for(i=0;i<n;i++)...
c语言中怎样用printf使文字一个一个的显示出来
\/\/使用Sleep()函数,需包含头文件“windows.h”,也可以自己写一个延迟函数 include <stdio.h> include<windows.h> define DT 1000 \/\/停留时间,以毫秒为单位 void main(){ int i=0;char s[]="中华人民共和国";while(i<strlen(s)){ printf("%c%c",s[i],s[i+1]);\/\/若是英文...
C语言,写一个函数,使给定的一个3X3的二维整型数组转置,即行列互换。
if(z == 0)printf("此数为合数\\n");if(z == 1)printf("此数为素数\\n");少了个=号,成赋值了~
用c语言写一个程序,输入一段字符串,使他可以计算出输入的大写字母小写...
printf("请输入一段字符串:\\n");scanf("%s", str); \/\/从标准输入读取一个字符串,存入str数组 for (i = 0; i < strlen(str); i++) \/\/遍历str数组中的每个字符 { if (str[i] >= 'A' && str[i] <= 'Z') \/\/如果字符是大写字母 { upper++; \/\/大写字母个数加一 } else ...