一道C语言题:整理字符串,将字符串中前导和后随的空白符删除,字符串中间连续的多个空白符只保留一个,

2025-04-08 11:59:07
推荐回答(1个)
回答1:

char str1[20],str2[20]

int i,j;

scanf("%s",str1);

for(i=0,j=0;i<=19;i++,j++)

{

if(str[i]!==' ') str2[j]==str1[i];

if(str[i]==' ') j--;

}

printf("%s",str2);

或:

#include

void trim_sp(char *str){

int len,i,j;

len = strlen(str);

while (str[len-1] == ' ') len--;

str[len] = '\0';

i=0;

while (str[i] == ' ') i++;

for(j=0;j<=len-i;j++) str[j]=str[j+i];

}

void main ()

{

char str[] = " abcd kkk hhh jjjj ";

trim_sp(str);

printf("|%s|\n",str);

}

扩展资料:

字符串在存储上类似字符数组,它每一位单个元素都是能提取的,字符串的零位是它的长度,如s[0]=10,这提供给我们很多方便,例如高精度运算时每一位都能转化为数字存入数组。

通常以串的整体作为操作对象,如:在串中查找某个子串、求取一个子串、在串的某个位置上插入一个子串以及删除一个子串等。两个字符串相等的充要条件是:长度相等,并且各个对应位置上的字符都相等。设p、q是两个串,求q在p中首次出现的位置的运算叫做模式匹配。串的两种最基本的存储方式是顺序存储方式和链接存储方式。

参考资料来源:百度百科-字符串