编程题:写一个函数将其中的\t都转换成4个空格
2014-11-09 20:04
225 查看
strDest目的字符串的地址,strSrc为源字符串的地址,length为源字符串的长度
参数中将源字符串定义为const char *strSrc这样就不能再此函数中进行修改。
在这通过这个题可以拓展几个知识点:1.strlen();求字符串的长度不算上最后的\0,而sizeof();算上最后的\0 例如:strlen("abc")=3;sizeof("abc")=4
2.动态分配内存的问题,在利用某个变量指针的时候一定记得给它分配内存,要不就是空指针。(总结的不太准确,敬请大家给予建议,并改正,谢谢)
char*convert(char*strDest,const char*strSrc,int length)
{
char*p=strDest;
int i=0;
while(*strSrc && i<length)
{
if(*strSrc=='\t')
{
for(int j=0;j<4;j++)
*p++=' ';
}
else
*p++=*strSrc;
strSrc++;
i++;
}
return strDest;
}
//这是在VS2010中运行的
int main()
{
char *str1="abc\tde\tfg";
int len=strlen(str1);
char*str2=new char;//这个地方需要注意的,必须动态分配,要不会指向空指针!!不能这样定义的char *str2;
//就在这个地方我开始找了很长时间的错,动态分配内存真的很重要!!!
str2=convert(str1,str2,len);
system("pause");
return 0;
}
参数中将源字符串定义为const char *strSrc这样就不能再此函数中进行修改。
在这通过这个题可以拓展几个知识点:1.strlen();求字符串的长度不算上最后的\0,而sizeof();算上最后的\0 例如:strlen("abc")=3;sizeof("abc")=4
2.动态分配内存的问题,在利用某个变量指针的时候一定记得给它分配内存,要不就是空指针。(总结的不太准确,敬请大家给予建议,并改正,谢谢)
char*convert(char*strDest,const char*strSrc,int length)
{
char*p=strDest;
int i=0;
while(*strSrc && i<length)
{
if(*strSrc=='\t')
{
for(int j=0;j<4;j++)
*p++=' ';
}
else
*p++=*strSrc;
strSrc++;
i++;
}
return strDest;
}
//这是在VS2010中运行的
int main()
{
char *str1="abc\tde\tfg";
int len=strlen(str1);
char*str2=new char;//这个地方需要注意的,必须动态分配,要不会指向空指针!!不能这样定义的char *str2;
//就在这个地方我开始找了很长时间的错,动态分配内存真的很重要!!!
str2=convert(str1,str2,len);
system("pause");
return 0;
}
相关文章推荐
- 写一个函数,将其中的/t都转换成4个空格。
- 写一个函数,将其中的 \t 都转换成4个空格
- 写一个函数,将其中的 都转换成4个空格(四种方法)
- 写一个函数,将其中的/t都转换成4个空格。(C++版)
- c++经典题目:写个函数,将其中的\t都转换成4个空格
- 写一个函数,将其中的 都转换成4 个空格。
- 编写一个函数escape(s,t),将字符串t复制到字符串s中,并在复制过程中将换行符、制表符等不可见字符分别转换为\n、\t等相应的可见的转义字符序列。要求使用switch语句。
- 8.8 写一个函数,输入一个4位数字, 要求输出这4个数字字符, 但每两个数字间有一个空格。 如输入1990,应输出“1 9 9 0”。
- 输入4个整数,找出其中最大的数,用一个函数来实现.cpp
- 设计一个函数,输入一个4位数字,要求输出这4个数字字符,但每个数字间空一个空格。
- 习题 7.8 写一个函数,输入一个4位数字,要求输出这4个数字字符,但每两个数字间空一个空格。如输入1990,应输出“1 9 9 0”。
- 编写一个函数,从实参传来一个字符串,统计其中字母,数字,空格和其他字符的个数,在主函数中输入字符串以及输出上述的结果
- 8.6 编写一个类,其中有一个 double 型私有数据成员 yuan(存放人民币数量,单位 为元),另外包含一个转换运算符重载成员函数以将 yuan 转换成美元(假设 1 美元对换 8.268 人民
- 练习 3-2 编写一个函数escape(s, t),将字符串t 复制到字符串s 中,并在复制过程中将换行符、制表符等不可见字符分别转换为\n、\t等相应的可见的转义字符序列。要求使用swich语句。
- 练习 3-2 编写一个函数escape(s, t),将字符串t复制到字符串s中,并在复制过程中将换行符、制表符等不可见字符分别转换为\n、\t等相应的可见的转义字符序列。要求使用swich语句。
- 练习3-2 编写一个函数escape(s,t),将字符串t复制到字符串s中,并在复制过程中将换行符、制表符等不可见字符转换为\n、\t等相应的可见的转义字符序列。要求使用switch语句。
- 作业题:输入4个整数,找出其中最大的数。用一个函数来实现. 分别使用结构化方法和函数嵌套的方法。
- 练习 3-6 修改itoa函数,使得该函数可以接收三个参数。其中,第三个参数为最小字段宽度。为了保证转换后所得的结果至少具有第三个参数指定的最小宽度,在必要时应在所得结果的左边填充一定的空格。
- 用一个函数实现将一行字符串中最短的单词输出。此行字符串从主函数传递给该函数。假设字符串中包含的单词以空格作为分隔符号,例如”Asia Games 2010 is held in GuangZhou.”,其中最短的单词是”is”和”in”。
- 一个把十六进制字符串转换为十进制数字的函数