C语言(36)空格替换

实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

void replace(char *str, int len)
{
	char *result = (char *)malloc(len*3);
	int i,n;
	n=0;
	for(i=0; i<len; i++){
		if(str[i] == ' '){
			result[n++]='%';
			result[n++]='2';
			result[n++]='0';
		}else{
			result[n++]=str[i];
		}
	}
	result[n]='\0';
	strcpy(str, result);
	free(result);
	result = NULL;
}


int main(int argc, char **argv)
{
	char str[512*3]={0};

	fgets(str, 500, stdin);
	printf("str:%s\n", str);
	//printf("strlen(str):%d\n", strlen(str));
	replace(str, strlen(str)-1);
	printf("str:%s\n", str);

	return 0;
}

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在 C 语言中,可以使用以下步骤来统计和替换文件中的单词: 1. 打开文件。使用 fopen 函数打开文件,并获取文件指针。 2. 读取文件内容。使用 fgets 函数读取文件中的一行内容,并将其存储在字符串变量中。 3. 分离单词。使用 strtok 函数将读取的字符串分割成单独的单词。 4. 统计单词。使用循环遍历分离出的所有单词,并使用 if 语句比较单词是否与要统计的单词相同。如果相同,则将计数器加 1。 5. 替换单词。使用 strstr 函数搜索要替换的单词,如果找到了,则使用 strncpy 函数将新单词复制到原来的单词位置。 6. 重复步骤 2 到 5,直到读取到文件末尾为止。 7. 关闭文件。使用 fclose 函数关闭文件。 ### 回答2: 使用C语言统计和替换文件中的单词可以通过以下步骤实现: 1. 打开需要操作的文件,可以使用`fopen()`函数打开文件,并指定读取模式。 2. 通过循环读取文件中的内容,可以使用`fscanf()`函数读取单词,直到文件结束。 3. 统计单词数量,可以使用一个变量来保存单词的个数,在每读取一个单词后,将该变量加1。 4. 进行单词替换,可以使用`fseek()`函数将文件指针定位到需要替换的位置,然后使用`fprintf()`函数将新的单词写入到文件中。 5. 关闭文件,使用`fclose()`函数关闭文件,释放资源。 具体的代码示例如下: ```c #include <stdio.h> #include <stdlib.h> #include <string.h> int main() { FILE *file; char word[100], replace[100], filename[100]; int count = 0; // 打开文件 printf("请输入要操作的文件名:"); scanf("%s", filename); file = fopen(filename, "r+"); if (file == NULL) { printf("文件打开失败!\n"); exit(1); } // 输入需要替换的单词和新单词 printf("请输入需要替换的单词:"); scanf("%s", word); printf("请输入新的单词:"); scanf("%s", replace); // 统计和替换单词 while (fscanf(file, "%s", word) != EOF) { if (strcmp(word, replace) == 0) { count++; fseek(file, -strlen(replace), SEEK_CUR); fprintf(file, "%s", replace); } } // 输出统计结果 printf("文件中共有%d个单词被替换为%s。\n", count, replace); // 关闭文件 fclose(file); return 0; } ``` 以上是一个简单的示例,通过该代码可以实现统计和替换文件中的单词。当然,这只是一个基础的例子,实际中可能需要考虑更复杂的情况,比如单词的大小写、标点符号等。 ### 回答3: C语言可以很方便地实现统计和替换文件中的单词。首先,需要打开指定的文件,并且逐行读取文件内容。利用C语言提供的文件操作函数,我们可以使用fopen()函数来打开文件,并通过fgets()函数逐行读取文件内容。 接下来,我们可以利用字符串处理函数来进行单词的统计和替换。对于统计单词,我们可以首先将每一行的内容按照空格或标点符号进行分割,然后通过遍历分割后的字符串数组,统计含有单词的个数。可以使用strtok()函数进行字符串的分割,然后通过遍历分割后的字符串数组,判断每个字符串是否为单词。 对于替换单词,我们可以使用字符串处理函数strstr()来查找文件中匹配的单词,然后使用strcpy()函数来替换。 最后,需要将统计和替换后的文件内容写回到原文件中。我们可以使用fwrite()函数将修改后的文件内容写回到原文件中。 需要注意的是,在进行文件操作时,我们应该注意错误处理,即检查文件的打开是否成功,以及操作是否成功。可以使用feof()函数来判断是否到达文件结尾,如果到达文件结尾跳出循环。 综上所述,通过逐行读取和处理文件内容,可以使用C语言实现文件中单词的统计和替换

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值