1.定义一个函数,返回其整数变元的字符串表示。例如,如果这个变元是25,函数就返回"25”。如果变元是-98,就返回"-98"。用适当的main()函数说明函数执行过程。
2.扩展上一题定义的函数,是函数接受第二个变元,以指定结果的字段宽度,是返回的字符串表示右对齐。用适当的main()函数说明函数执行过程。
3.定义一个函数,其参数是一个字符串,返回该字符串中的单词数(单词以空格和标点符号来分隔。假设字符串不含单双引号,也就是说没有像isn't这样的单词)。定义第二个函数,它的第一个参数是一个字符串,第二个参数是一个数组,该函数将第一个字符串变元分割成单词,把这些单词存储在第二个数组变元中,最后返回存储在数组中的单词。定义第三个函数,其参数是一个字符串,返回该字符串的字母数。使用这些函数实现一个程序,从键盘读入含有文本的字符串,输入文本中的所有单词,输入顺序是按照单词的中的字母数,由短到长。
函数返回值是数组怎么实现啊?还有右对齐怎么做啊?
17 个解决方案
#1
作业帖,鉴定完毕。
#2
作业贴吧。
#3
我只是把具体题目写上去了而已~这不是作业
我是新手,想知道函数返回值是数组怎么实现啊?还有右对齐怎么做啊?
#4
C语言的函数返回值不能为数组,这是因为如果允许函数返回值为数组,那么接收这个数组的内容的东西,也必须是一个数组,但C语言的数组名是一个不可修改的左值,它不能作为赋值运算符的左操作数来接受另一个数组,因此函数返回值不能为数组。
#5
右对齐的话,可以算好长度,在前面补空格字符。
例如:12,123,1234,要右对齐的话,可以输出如下(其中*表示空格).
****12
***123
**1234
例如:12,123,1234,要右对齐的话,可以输出如下(其中*表示空格).
****12
***123
**1234
#6
#include <stdio.h>
int main(int argc, char *argv[])
{
int i = -1099,j = 0,m = 0;
char c[10] = {0};
if (i<0)
{
i = -i;
c[0] = '-';
}
for(j = 1; ;j++)
{
if(i == 0)
break;
m = i%10;
i = i/10;
c[j] = m+'0';
}
for(i = 0; i<j; i++)
{
printf("%c",c[i]);
}
return 0;
}
#7
#8
int main(int argc,char*argv[])
这个没学过~定义函数!
#9
那第一个题目,定义的函数最后返回字符串的时候应该怎么返回啊?返回值是什么啊?
#10
先谢过~
#11
返回char *
#12
Ding XIXI ........
#13
//1.
#include "stdio.h"
#include "stdlib.h"
char * getStr(int num)
{
char *str = (char*)malloc(sizeof(char)*16);//分配16个字节的空间应该够了
memset(str,0,sizeof(str));
itoa(num,str,10);
return str;
}
int main()
{
int i = -100;
char *str = getStr(i);
printf("%s",str);
free(str);
system("pause");
}
//======================================================
//2.
#include "string.h"
#include "stdio.h"
#include "stdlib.h"
char * getStr(int num,int width)
{
char tmp[16] = {0};
char *str = (char*)malloc(sizeof(char)*16);
memset(str,0,sizeof(str));
itoa(num,tmp,10);
strncpy(str,tmp,width);
return str;
}
int main()
{
int i = -100;
int width = 0;
char *str = getStr(i,3);//输出-10 三个字符
printf("%s",str);
free(str);
system("pause");
}
#14
1.定义一个函数,返回其整数变元的字符串表示。例如,如果这个变元是25,函数就返回"25”。如果变元是-98,就返回"-98"。用适当的main()函数说明函数执行过程。
这个就是itoa函数,自己google吧
这个就是itoa函数,自己google吧
#15
2.扩展上一题定义的函数,是函数接受第二个变元,以指定结果的字段宽度,是返回的字符串表示右对齐。用适当的main()函数说明函数执行过程。
字符对齐而已,在第一个的功能上,对获取的char *数据,后移到右边,左边补齐(不知道你题目的需求是补齐为什么)。
字符对齐而已,在第一个的功能上,对获取的char *数据,后移到右边,左边补齐(不知道你题目的需求是补齐为什么)。
#16
3.定义一个函数,其参数是一个字符串,返回该字符串中的单词数(单词以空格和标点符号来分隔。假设字符串不含单双引号,也就是说没有像isn't这样的单词)。定义第二个函数,它的第一个参数是一个字符串,第二个参数是一个数组,该函数将第一个字符串变元分割成单词,把这些单词存储在第二个数组变元中,最后返回存储在数组中的单词。定义第三个函数,其参数是一个字符串,返回该字符串的字母数。使用这些函数实现一个程序,从键盘读入含有文本的字符串,输入文本中的所有单词,输入顺序是按照单词的中的字母数,由短到长。
说穿了就是统计空格(连续的不算)和标点个数。
if(ch==" "&&pre==0) //类似这样统计,pre用来标识前一个是否为空格
{
count++;
pre=1;
}
说穿了就是统计空格(连续的不算)和标点个数。
if(ch==" "&&pre==0) //类似这样统计,pre用来标识前一个是否为空格
{
count++;
pre=1;
}
#17
不会做作业,以前学汇编时,书上那些叫法俺比较晕,C的作业也差不多,本来挺明白的事,让书一描述就糊涂了。
#1
作业帖,鉴定完毕。
#2
作业贴吧。
#3
我只是把具体题目写上去了而已~这不是作业
我是新手,想知道函数返回值是数组怎么实现啊?还有右对齐怎么做啊?
#4
C语言的函数返回值不能为数组,这是因为如果允许函数返回值为数组,那么接收这个数组的内容的东西,也必须是一个数组,但C语言的数组名是一个不可修改的左值,它不能作为赋值运算符的左操作数来接受另一个数组,因此函数返回值不能为数组。
#5
右对齐的话,可以算好长度,在前面补空格字符。
例如:12,123,1234,要右对齐的话,可以输出如下(其中*表示空格).
****12
***123
**1234
例如:12,123,1234,要右对齐的话,可以输出如下(其中*表示空格).
****12
***123
**1234
#6
#include <stdio.h>
int main(int argc, char *argv[])
{
int i = -1099,j = 0,m = 0;
char c[10] = {0};
if (i<0)
{
i = -i;
c[0] = '-';
}
for(j = 1; ;j++)
{
if(i == 0)
break;
m = i%10;
i = i/10;
c[j] = m+'0';
}
for(i = 0; i<j; i++)
{
printf("%c",c[i]);
}
return 0;
}
#7
#8
int main(int argc,char*argv[])
这个没学过~定义函数!
#9
那第一个题目,定义的函数最后返回字符串的时候应该怎么返回啊?返回值是什么啊?
#10
先谢过~
#11
返回char *
#12
Ding XIXI ........
#13
//1.
#include "stdio.h"
#include "stdlib.h"
char * getStr(int num)
{
char *str = (char*)malloc(sizeof(char)*16);//分配16个字节的空间应该够了
memset(str,0,sizeof(str));
itoa(num,str,10);
return str;
}
int main()
{
int i = -100;
char *str = getStr(i);
printf("%s",str);
free(str);
system("pause");
}
//======================================================
//2.
#include "string.h"
#include "stdio.h"
#include "stdlib.h"
char * getStr(int num,int width)
{
char tmp[16] = {0};
char *str = (char*)malloc(sizeof(char)*16);
memset(str,0,sizeof(str));
itoa(num,tmp,10);
strncpy(str,tmp,width);
return str;
}
int main()
{
int i = -100;
int width = 0;
char *str = getStr(i,3);//输出-10 三个字符
printf("%s",str);
free(str);
system("pause");
}
#14
1.定义一个函数,返回其整数变元的字符串表示。例如,如果这个变元是25,函数就返回"25”。如果变元是-98,就返回"-98"。用适当的main()函数说明函数执行过程。
这个就是itoa函数,自己google吧
这个就是itoa函数,自己google吧
#15
2.扩展上一题定义的函数,是函数接受第二个变元,以指定结果的字段宽度,是返回的字符串表示右对齐。用适当的main()函数说明函数执行过程。
字符对齐而已,在第一个的功能上,对获取的char *数据,后移到右边,左边补齐(不知道你题目的需求是补齐为什么)。
字符对齐而已,在第一个的功能上,对获取的char *数据,后移到右边,左边补齐(不知道你题目的需求是补齐为什么)。
#16
3.定义一个函数,其参数是一个字符串,返回该字符串中的单词数(单词以空格和标点符号来分隔。假设字符串不含单双引号,也就是说没有像isn't这样的单词)。定义第二个函数,它的第一个参数是一个字符串,第二个参数是一个数组,该函数将第一个字符串变元分割成单词,把这些单词存储在第二个数组变元中,最后返回存储在数组中的单词。定义第三个函数,其参数是一个字符串,返回该字符串的字母数。使用这些函数实现一个程序,从键盘读入含有文本的字符串,输入文本中的所有单词,输入顺序是按照单词的中的字母数,由短到长。
说穿了就是统计空格(连续的不算)和标点个数。
if(ch==" "&&pre==0) //类似这样统计,pre用来标识前一个是否为空格
{
count++;
pre=1;
}
说穿了就是统计空格(连续的不算)和标点个数。
if(ch==" "&&pre==0) //类似这样统计,pre用来标识前一个是否为空格
{
count++;
pre=1;
}
#17
不会做作业,以前学汇编时,书上那些叫法俺比较晕,C的作业也差不多,本来挺明白的事,让书一描述就糊涂了。