64,648
社区成员
发帖
与我相关
我的任务
分享
#include <string.h>
#include <stdio.h>
bool ReplaceCr_s(char str[], int capacity )
{
int i, k,crNum=0, strLen = strlen(str);
for( i=0;i<strLen; i++ )
{
if( str[i]=='\n' ){ ++crNum; }//扫描,统计回车的个数
}
k = crNum*4;//增长的空间
if( strLen+k > capacity-1 )//得算上ZERO的空间
{
return false;
}
for( i=strLen; i>=0; --i )//从尾巴开始直接定位
{
if( str[i]!= '\n' )
{
str[ i+k ]=str[i];
}else
{
memset( &str[i+k-4], ' ',5*sizeof(char));
k-=4;
}
}
return true;
}
int main()
{
char str[100]="a\nb\nc";
ReplaceCr_s(str,100);
printf("%s\n",str);
}
#include <iostream>
using namespace std;
void instead(char* str)
{
char* p = str;
while ( *p )
{
if ( *p== '\n')
{
size_t length = strlen(p);
for ( int i=length + 5; i>=5;i-- )
{
p[i] = p[i-4];
}
for ( i=0;i<5;i++)
{
p[i] = ' ';
}
}
p++;
}
}
void main()
{
char p[100] = "he\nllo";
cout<<p<<endl;
instead( p );
cout<<p<<endl;
}