两道小题
1.写一个函数,将字符串中的'\n'替换成5个空格
2.作为项目负责人,你负责的项目中人员之间发生了严重分歧或你与项目人员发生了分歧,你该怎么办?
[解决办法]
1.发现'\n'用把旧串复制到新串
2.开会解决分歧
[解决办法]
char szTemp[256];
memset(szTemp,0,sizeof(szTemp));
int nIndex=0;
const char *p=szSrc;
for (;*p!=0;++p)
{
if ((*p)=='\n')
{
strcpy(szTemp+nIndex," ");
nIndex+=5;
else
{
szTemp[nIndex]=*P;
++nIndex;
}
}
strcpy(szSrc,szTemp);
[解决办法]
任何事情有了分歧就要多沟通,避免误会,不要听不进别人的意见!!
ok,善于采纳别人的好建议才是优秀的leader,
再有就是不采纳别人的建议也要给他讲明道理让他心服口服!!
[解决办法]
#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;}
[解决办法]
题1:
#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);
}