当前位置:网站首页>One question per day - replace spaces
One question per day - replace spaces
2022-07-05 08:28:00 【Protect Xiaozhou】
Hello, everyone , I'm protecting Xiao Zhou ღ, This issue brings you an exercise on Niuke online —— Replace blank space , Bloggers share two ways to solve problems ( A link to this question is attached at the end ), Let's have a look ~
The topic comes from niuke.com
describe
Please implement a function , Put a string s Replace each space in with “%20”.
for example , When the string is We Are Happy. The replaced string is We%20Are%20Happy.
Data range :0 <=strlen(s) <=1000. Ensure that the characters in the string are capitalized English letters 、 One of lowercase letters and spaces .
Example 1
Input :
"We Are Happy"Return value :
"We%20Are%20Happy"
Example 2
Input :
" "Return value :
"%20"
Thinking analysis :
Title main information :
- Put a string s Replace each space in with “%20”;
- Ensure that the characters in the string are capitalized English letters 、 One of lowercase letters and spaces ;
Defines an array of characters ch[N], Or define a dynamically opened character array , We can take traversal strings s To determine the position of the space , Put the character before the space s The value of one to one is given to the character array we define ch, When spaces are encountered , take ch The values of spaces and the next two spaces are replaced by '%','2','0'. until character string s End flag encountered ‘\0’ until .
Program realization :
Array approach :
#include<stdio.h>
#include<string.h>
char* replaceSpace(char* s)
{
// Because the array is opened on the stack area , Function end stack frame destroy , So want to use static Modify the array , Avoid function end , Array destroy
static char ch[50] = { 0 };
for (int i = 0,j = 0; s[i] != '\0'; i++, j++)
{
if (s[i] != ' ')
{
ch[j] = s[i];
}
else if (s[i] == ' ')
{
ch[j] = '%';
ch[j + 1] = '2';
ch[j + 2] = '0';
j += 2;//j Follow i Keep in sync
}
}
s = ch;
// Return the pointer type according to the requirements of the topic
return s;
}
int main()
{
char arr[50] = {0};
gets(arr);
// Replace blank space
char *str=replaceSpace(arr);
printf("%s\n",str);
return 0;
}
Dynamic development practices :
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
char* replaceSpace(char* s)
{
// write code here
int N = strlen(s);// Calculate string length
char tmp[] = { '%', '2', '0' };// replace content
int space = 0;// Calculate the number of spaces
for(int i=0;i<N;++i)
{
if (s[i]==' ')
{
++space;
}
}
int Len = N + space * 2;
// The function of dynamically opening up space on the heap ends , Will not actively destroy
char* str =(char*)malloc(Len*sizeof(char));
if (str == NULL)// If dynamic development fails , End procedure
return;
// Traversal string s
int i = 0;
while (*s)
{
if (*s == ' ')
{
int n = 0;
while (n < 3)
{
str[i] = tmp[n];
++i;
++n;
}
}
else
{
str[i] = *s;
++i;
}
++s;
}
return str;
}
int main()
{
char arr[50] = {0};
gets(arr);
// Replace blank space
char *str=replaceSpace(arr);
printf("%s\n",str);
return 0;
}
Three spaces
Pay attention to :
- The return type of this question is char*
- If you define character array storage , The array is opened on the stack area of memory , Function end stack frame destroy , That is, the space opened up is recycled by the operating system , here , We take this array address as the return value , It will cause illegal access to memory , So we should use static Decorate the array , Let the array become a static global variable , It will not be destroyed because the function ends .
- Can be used to malloc() Open up a space on the heap of memory for storage , In addition to our initiative in the space on the heap free() Release and program end are recycled by the operating system , It will not be destroyed for other reasons .
If you don't know anything about dynamic memory, you can learn another blog of the blogger :C Language —— Dynamic memory
Interested friends can click on the link to try to use the blogger's method , Or do it in your own way .
The title comes from : Cattle from
link : Replace blank space _ Niuke Tiba _ Cattle from
Thank you for watching this article , Please look forward to : Protect Xiao Zhou ღ
If there is infringement, please contact to modify and delete !
边栏推荐
- Cinq détails de conception du régulateur de tension linéaire
- Management and use of DokuWiki (supplementary)
- 实例010:给人看的时间
- My-basic application 1: introduction to my-basic parser
- Example 008: 99 multiplication table
- NTC thermistor application - temperature measurement
- Briefly talk about the identification protocol of mobile port -bc1.2
- Vofa+ software usage record
- Sql Server的存储过程详解
- Verilog -- state machine coding method
猜你喜欢
Briefly talk about the identification protocol of mobile port -bc1.2
Several implementation schemes of anti reverse connection protection of positive and negative poles of power supply!
STM32 single chip microcomputer -- volatile keyword
Wifi-802.11 negotiation rate table
DCDC circuit - function of bootstrap capacitor
【三层架构及JDBC总结】
[trio basic tutorial 17 from getting started to mastering] set up and connect the trio motion controller and input the activation code
Bluebridge cup internet of things basic graphic tutorial - GPIO output control LD5 on and off
STM32 --- serial port communication
Example 007: copy data from one list to another list.
随机推荐
UE像素流,来颗“减肥药”吧!
【三层架构】
Briefly talk about the identification protocol of mobile port -bc1.2
關於線性穩壓器的五個設計細節
[three tier architecture and JDBC summary]
Sql Server的存储过程详解
STM32 summary (HAL Library) - DHT11 temperature sensor (intelligent safety assisted driving system)
Detailed summary of FIO test hard disk performance parameters and examples (with source code)
Bluetooth hc-05 pairing process and precautions
Infected Tree(树形dp)
How to write cover letter?
Wifi-802.11 negotiation rate table
[trio basic tutorial 17 from getting started to mastering] set up and connect the trio motion controller and input the activation code
Management and use of DokuWiki (supplementary)
Volatile of C language
如何写Cover Letter?
Semiconductor devices (III) FET
Charge pump boost principle - this article will give you a simple understanding
Several implementation schemes of anti reverse connection protection of positive and negative poles of power supply!
Sizeof (function name) =?