如题所述
输入任意长度字符串,并输出打印字符串及其长度。
#include<stdio.h>#include<malloc.h>
#include<conio.h>
char *input();//输入任意长度字符串(可包含空格),回车确认,返回输入的字符串
int getLen(char *str);//通过指针获取字符串长度
void meError(void *p);//内存申请失败
int main()
{
char *str=NULL;
str=input();
printf("\n输入的字符串为:%s\n",str);
printf("\n输入的字符串长度为:%d\n",getLen(str));
return 0;
}
char *input()
{
int len=2;
char c=0,*str=NULL,*strSave=NULL;
while((c=getch())!='\r')
{
printf("%c",c);
if(str==NULL)
str=(char *)malloc(sizeof(char)*len);
else
{
len++;
strSave=(char *)realloc(str,sizeof(char)*len);
if(strSave)
str=strSave;
}
str[len-2]=c;
str[len-1]=0;
}
return str;
}
int getLen(char *str)
{
int i=0;
char *p=&str[0];
while(*p!=0)
{
i++;
p++;
}
return i;
}
void meError(void *p)//内存申请失败
{
if(p==NULL)
{
printf("异常:内存申请失败!回车结束程序!\n");
while(getch()!='\r');
exit(0);
}
}
温馨提示:答案为网友推荐,仅供参考
第1个回答 2019-02-20
将用户随机输入的整数分别以十六进制、八进制、十进制方式、科学计数法输出。
2. 用循环语句编程打印下列矩阵形式,尽量使语句简捷,注意第一列与第二列间距为一个Tab的位置,其余宽度为两个空格:
1 0 1 2 3 4 5 6
2 1 2 3 4 5 6 0
3 2 3 4 5 6 0 1
4 3 4 5 6 0 1 2
5 4 5 6 0 1 2 3
6 5 6 0 1 2 3 4
3. 编写函数将华氏温度转换为摄氏温度,公式为C=(F-32)*5/9;并在主函数中调用。
4. 求方程 的根,用三个函数分别求当 、 和 的根,并输出结果。从主函数输入系数。
5. 求4×4矩阵中每一行元素的最小值并输出。
二、第二类题目(共4道,选做其中的2道,每题7分,共14分)
1. 实现用户输入的三个整数的排序。
2.采用循环结构完成1至100之间的偶数相加。
3.编写一个函数,要求键盘输入正整数n,求出n 与其反序数x 之和并输出。
例如,输入2038,输出应为:n + x = 2038 + 8302 = 10340。
4.对于一个二维数组,分别求各行、各列及所有元素之和。
三、第三类题目(共3道,选做其中的1道,每题8分,共8分)
1. 一球从100m落下,每次落地后反跳回原高度的一半,再落下。编程求它在第10次落地时,共经过多少m?第10次反弹多高?
2.一个数如果恰好等于它的因子之和(这里的因子不包括这个数本身),这个数就称为“完数”。
例如,6的因子为1、2、3,而6 = 1+2+3,因此6是“完数”。
编程求出100以内的所有完数,并按下面格式输出其因子:6,its factors are 1,2,3。用函数来判断是否是“完数”。
3. 有15个数按由大到小的顺序存放在一个数组中,输入一个数,要求用折半查找法找出该数是数组中的第几个元素的值。
如果该数不在数组中,则打印出“无此数”。
一、第一类题目(共5道,选做其中的3道,每题6分,共18分)
1.编程实现加密,密码规律是:用原字母后面第四个字母代替原来的字母,
例如,字母A后面第四个字母是E,用E代替A。因此China应译为Glmre。请编写一程序,实现任意字符串的加密。
2.编程求一元二次方程ax2 +bx+c=0的根。
3.编写一个函数来检验输入的一个字符是大写
2. 用循环语句编程打印下列矩阵形式,尽量使语句简捷,注意第一列与第二列间距为一个Tab的位置,其余宽度为两个空格:
1 0 1 2 3 4 5 6
2 1 2 3 4 5 6 0
3 2 3 4 5 6 0 1
4 3 4 5 6 0 1 2
5 4 5 6 0 1 2 3
6 5 6 0 1 2 3 4
3. 编写函数将华氏温度转换为摄氏温度,公式为C=(F-32)*5/9;并在主函数中调用。
4. 求方程 的根,用三个函数分别求当 、 和 的根,并输出结果。从主函数输入系数。
5. 求4×4矩阵中每一行元素的最小值并输出。
二、第二类题目(共4道,选做其中的2道,每题7分,共14分)
1. 实现用户输入的三个整数的排序。
2.采用循环结构完成1至100之间的偶数相加。
3.编写一个函数,要求键盘输入正整数n,求出n 与其反序数x 之和并输出。
例如,输入2038,输出应为:n + x = 2038 + 8302 = 10340。
4.对于一个二维数组,分别求各行、各列及所有元素之和。
三、第三类题目(共3道,选做其中的1道,每题8分,共8分)
1. 一球从100m落下,每次落地后反跳回原高度的一半,再落下。编程求它在第10次落地时,共经过多少m?第10次反弹多高?
2.一个数如果恰好等于它的因子之和(这里的因子不包括这个数本身),这个数就称为“完数”。
例如,6的因子为1、2、3,而6 = 1+2+3,因此6是“完数”。
编程求出100以内的所有完数,并按下面格式输出其因子:6,its factors are 1,2,3。用函数来判断是否是“完数”。
3. 有15个数按由大到小的顺序存放在一个数组中,输入一个数,要求用折半查找法找出该数是数组中的第几个元素的值。
如果该数不在数组中,则打印出“无此数”。
一、第一类题目(共5道,选做其中的3道,每题6分,共18分)
1.编程实现加密,密码规律是:用原字母后面第四个字母代替原来的字母,
例如,字母A后面第四个字母是E,用E代替A。因此China应译为Glmre。请编写一程序,实现任意字符串的加密。
2.编程求一元二次方程ax2 +bx+c=0的根。
3.编写一个函数来检验输入的一个字符是大写
第2个回答 2019-02-20
#include<stdio.h>
int main()
{ char c;
int i=0;
while((c=getchar())!='\n')
{ putchar(c);
i++;
}
printf("\n%d\n",i);
return 0;
}
int main()
{ char c;
int i=0;
while((c=getchar())!='\n')
{ putchar(c);
i++;
}
printf("\n%d\n",i);
return 0;
}
第3个回答 2019-02-19
实现任一字符和字符串长度的输出,其中字符和字符串内容由编程者...C语言程序设计上机试题 1页 免费 大学c...