编写程序使用字符数组实现删除字符串中所有的空格字符

2024-11-15 11:12:31
推荐回答(3个)
回答1:

#include
#include /* memset( ) 库函数在此头文件中有定义 */
#define STRING_LEN 50 /* 定义一个常量 STRING_LEN,规定允许从键盘上输入的最多字符不超过 STRING_LEN 个字符 */
void main( )
{
int i = 0 , j = 0 ; /* 定义两个循环变量 i 和 j,其中:i 控制 tmp_string 数组,j 控制 my_string 数组 */
char tmp_string[STRING_LEN], my_string[STRING_LEN] ; /* 定义两个字符数组 */
memset(tmp_string, '\0', STRING_LEN) ; /* 将处理前的字符串变量(从键盘输入的字符串)清零 */
memset( my_string, '\0', STRING_LEN) ; /* 将处理后的字符串变量清零 */
gets(tmp_string) ; /* 从键盘上输入一个字符串,并保存到 tmp_string 变量中 */
for( i = 0 ; tmp_string[i] != '\0' ; i ++ ) /* 对 tmp_string 中的每一个字符做循环 */
if( tmp_string[i] != 32 ) /* 如果 tmp_string[i] 中的字符为非空格字符(32为空格符的ASCII编码) */

{

my_string[j] = tmp_string[i] ; /* 则将 tmp_string[i] 拷贝到 my_string[j] 中 */

j ++ ; /* 非空字符数组 my_string 的下标 j 增加 1 */

}

/* 如果 tmp_string[i] 中的字符为 '\0',表示到达字符串结尾,则退出 for 循环 */

printf("tmp_string is %s\n", tmp_string ) ; /* 输出删除空格字符之前的字符串 */
printf("my_string is %s\n", my_string ) ; /* 输出删除空格字符之后的字符串 */

}

回答2:

void fun(char *str)
{
char *p=str;
int i=0;
while(*p)
{
if(*p!=' ')
str[i++]=*p;
p++;
}
str[i]='\0';
}
int main()
{
char str[81];
char Msg[]="Input a string:";
printf(Msg);
gets(str);
puts(str);
fun(str);
printf("***str:%s!\n",str);
return 0;
}

回答3:

视觉特效 王继华