trust me this is the best explanation on youtube about strtok
@piyushsaxena62435 жыл бұрын
Totally agree
@vedantgolash60844 жыл бұрын
agree
@赤金蓮4 жыл бұрын
I absolutely agree. I've been bashing my head against this for over an hour and I can finally get back to coding!
@CSERISHINANDHA3 жыл бұрын
@@赤金蓮 exactly
@turnerbrentley35043 жыл бұрын
Sorry to be off topic but does anybody know of a trick to get back into an instagram account? I somehow lost the account password. I would love any assistance you can offer me.
@DeveloperDesmond4 жыл бұрын
This is such a good tutorial. It's all content no filler, but you still spend so much explaining all the details and nuances, which is key.
@ignaciofernandez3423 Жыл бұрын
thanks, I´ve seen a couple of videos trying to understand strtok and you are the only one who explained it simple and to the point enough for me to understand
@JurGon124 жыл бұрын
I'm doing my C programming module at uni atm, and you are like a bible to me. Thanks for helping actually understanding C!
@tacotalks36974 жыл бұрын
I love you so much. You're the greatest C programmer and teacher the world has ever seen. You've saved me so much stress.
@DanielDybing4 жыл бұрын
Great video! I love how you explain things in a very easy and straight-forward way. It's just pure content!
@caitlingibbons22463 жыл бұрын
Simply excellent. I was initially confused by the nuances of strtok, but this video was quite elucidating.
@ree-1012 ай бұрын
brilliant explanation. not only did you explain how to use it, but also what happens to the code in the background as well. thank you so much
@lost-in-my-maze80245 жыл бұрын
your explanation is awesome keep it up !!
@saravananjagadeeesan5934 жыл бұрын
Thanks a lot !!
@CSERISHINANDHA3 жыл бұрын
@@saravananjagadeeesan593 you're the admin of this channel?
@kashishsingh19315 жыл бұрын
Thank you, thank you, thank you. This is so good, the explanation. I don't have anything to say as everything has already been said.
@bushraw663 жыл бұрын
this video is so smooth and easily understandable.THANKYOU
@MissGamesKuma Жыл бұрын
Can I just say that your videos are so incredibly helpful!! I have found many videos on KZbin helpful but this is the channel that I have come back to the most. Super friendly and easy to follow and understand. Plus so much content! Many thanks from a rookie coder!
@bschena4 жыл бұрын
Thank you! this is a GREAT explanation of what's going on with strtok! I found some example code but couldn't figure out what the heck it was doing. Powerful function to know! Thanks!
@atasharichmolina62144 жыл бұрын
pls do more of this (functions, tokens, problems in C/C++ and more) it helped me to become aware bcs seriously,, C/C++ have several functions and I badly needed someone who can explain it to me thoroughly bcs we are in an online setting of classes, so basically, self-study is my thing now. appreciate u dude!!
@rrMaxwell Жыл бұрын
excellent explanation. you taught the thing that i was reading on geeks for geeks for an hour in such a short itme
@tcszebra23363 жыл бұрын
After subscribing this channel, i am in love with c coding.
@toaastr84094 жыл бұрын
This man is one of the most important men in the world. I believe that.
@juansuarezburgos57272 жыл бұрын
Love your videos. Getting me through cs 50 at Dartmouth rn
@chelilack3 жыл бұрын
I have chocked when saw russian subtitles.Thanks for this
@Mikeriker2 жыл бұрын
You expalained it very clearly. Thanks for this! Nice recap in the end haha
@dmacdougall618311 ай бұрын
Very good thanks for explaining all the details. I think this also helped me digest some of the other stuff i didnt quite get yet
@supersmiley29544 жыл бұрын
Thanks buddy for saving my life at university 😅👍
@steveworks34094 жыл бұрын
Careful, he 's a hero.. Best video about strtok.
@lucamartins72164 жыл бұрын
the best explanation on yt for sure
@sandhyag95683 жыл бұрын
Awesome Explanation....Best teacher you are
@thebeesknees74675 жыл бұрын
This helped me a lot. Thank you! :D
@zyghom2 жыл бұрын
I am not sure if C is as simple as Linux or opposite but considering that in Linux/Unix "one program does one thing" is a mantra, and now seeing that C follows the same... Actually probably it is Linux/Unix that took from C. Irrespective: I like this approach. Yes, there are other functions or languages that do many things at once, but as long as they are built on such simple pieces... I like it ;-)
@panagiotiskakalis73604 жыл бұрын
Love it!! This will help me for an important program assignment for my uni!
@atasharichmolina62144 жыл бұрын
best explanation!!!!!!! keep going Mr. :))) you helped me a lot
@BiMathAx3 жыл бұрын
Just let me say to you a french thanks'you : Merci beaucoup, cette vidéo est complète et permet de comprendre strtok super simplement : MERCI
@dustonspear46184 жыл бұрын
Excellent tutorial. This video helped me very much. Thank you!
@carracingsongs5 жыл бұрын
Juts what I was looking for. Thank you!
@AlashAls4 жыл бұрын
Followed a lot of beginner C tutorials. No one talked about String token. Some books even skipped it.
@marioauditore5712 жыл бұрын
this video / explaination really helped me out. End was the best tho " 'C' you next time". :D
@joelmanning2494 жыл бұрын
Damn fine explanation. strtok has been bugging me for ages :D
@chamarasilva77003 жыл бұрын
So strtok function has unfreed memory when excited (Hence it can continue tokenizing). So how will this not be a memory leak issue?
@CodeVault3 жыл бұрын
We're not dynamically allocating anything in the video
@encore40864 жыл бұрын
Thank youuu, the best explanation about strtok.
@TheLuckyyy134 жыл бұрын
Holy shit. I actually understood this better than i could imagine.
@Karthik-kt243 жыл бұрын
very cool explanation!! explained everything very welll
@nenani18173 жыл бұрын
WOW!!! this is the best explnation ever!!
@yorgunkaptaan3 жыл бұрын
Thanks a lot, man. This explanation is really helpful.
@ronjeremy12325 жыл бұрын
given the position or index of a word in the string, could you remove it with strtok?
@CodeVault5 жыл бұрын
No, it won't work. I suggest using strcpy(str + wordIndex, str + wordIndex + wordSize); That will basically copy over the last part of your string (after the word you found) over that word, essentially deleting it.
@ronjeremy12325 жыл бұрын
@@CodeVault i used Strtok() to separate each word, then i iterated through them with a loop and copied the words onto a text file, and when i reached the index that was given, i just skipped copying that word
@CodeVault5 жыл бұрын
@@ronjeremy1232 Be careful with that. strtok takes a list of characters to split at, not a full string. So if you give it, let's say, "apple", it will split at the characters 'a', 'p', 'l' and 'e'. Not at the string "apple". That's why I think you cannot really use it for removing other words.
@ronjeremy12325 жыл бұрын
@@CodeVault but i was forced to use strtok and strcat specifically
@ronjeremy12325 жыл бұрын
And i separated them with strtok(str, " ")
@tidakdiketahui51472 жыл бұрын
Very detailed video. But, i want to ask, how to store that each string into an array?
@CodeVault2 жыл бұрын
You could simply define 2D array of characters: char pieces[100][100]; int count = 0; And just copy each piece using strcpy, like so: strncpy(pieces[count++], piece, 99);
@tidakdiketahui51472 жыл бұрын
@@CodeVault Wow, superb. Finally it works. Thank you so much for your help. You've got a new subscriber 😁
@Pwnedby Жыл бұрын
Thats a nice video. Im still learning c. Quick question at 7:24 could i use memory allocation to store each string so i can select the pieces by its index?
@CodeVault Жыл бұрын
Of course. Usually I suggest you simply make a statically allocated array of char pointers so you don't have to deal with allocating and deallocating elements of that array
@hemersonallan Жыл бұрын
Awesome, Greetings from Brazil !!!
@minhhuydo27014 жыл бұрын
Hi. Thanks for your video!!. I need you help just a litte bit. So my stuff works but It needs more improvement. As you said in 7:45, how can I seperate those spaces and add 0 instead? Or any function to add 0 in the string when there are 2 spaces ? Like: "a b"now become"a 0 0 b"
@CodeVault4 жыл бұрын
I think iterating over the string and manually checking each character (without using strtok) is the best option in this case
@minhhuydo27014 жыл бұрын
@@CodeVault ok let me see I can do something to add 0 in between ,,
@Mr.AIFella4 жыл бұрын
Thank you for the video. It helps me with my H.W.
@swimmerbc3 жыл бұрын
Legendary dude, thanks for the explanation!
@sreyamathew327 Жыл бұрын
Can you please tell me how to extract part of input string enclosed in " ". Like input sentence is: printf( "Result is") and I want to extract the part enclosed in double quotes. It's for lexical analyser using c
@CodeVault Жыл бұрын
Just use strtok() as shown in the video with the space character as delimiter
@Raja_IT_Trainer3 жыл бұрын
Great explanation... 👍👍
@georger8443 жыл бұрын
Can you make a video about setting up a debugger like yours and how to use it? Also, your videos although short and very specific are very very useful,thanks.
@CodeVault3 жыл бұрын
I have this video for VSCode: code-vault.net/lesson/ublnbln8uf:1603733528013 I no longer use DevC++, but that should work out of the box without any configurations needed.
@legomeisterlp43753 жыл бұрын
Very very very good video 👍👍👍👍. Thanks!! 🤓😄
@ankitjha3724 жыл бұрын
Best go through explanation!!!
@manasvinsharma17405 жыл бұрын
Which ide/compiler are you using?...
@CodeVault5 жыл бұрын
I'm using Dev C++ since it's lightweight and works out of the box. Here's the download link to it: sourceforge.net/projects/orwelldevcpp/
@VasilijeVrbic6 ай бұрын
Great explanation. Cheers!
@bartlomiejodachowski2 жыл бұрын
how to make such function that remembers how many time it was called with same arguments? static variable?
@CodeVault2 жыл бұрын
Yea, that would be a nice solution. You could as well just use a global variable
@supertonyxd5 жыл бұрын
Nice explanation! Thank you so much!
@nikirangdan__3 жыл бұрын
Sir what if I want to pass the value of piece, in this case the individual words, as a string argument to another function? How do I do that?
@CodeVault3 жыл бұрын
You simply pass it as a char* int fn(char* in) { ... } // then, after strtok fn(piece);
@nikirangdan__3 жыл бұрын
@@CodeVault Hello Sir, very thanks for the response. When I tried to copy your code, it prints the individual values right. However, printing the value is not what I am required to do. What I am required to do Sir is that I need to be able to build a linked list out of the individual pieces that I was able to extract using the strtok() method. So I made a push function that would append each "piece" from the given input string. When I tried to pass the piece and run the code, the output is not the same as the user's. :( I'm afraid the "piece" that was extracted is not of an integer/char type. Please help me sir. Also, may I email you the code for you to be able to fully grasp what I'm saying?
@CodeVault3 жыл бұрын
Yeah, then you might have to allocate space for it in the linked list's node and then call strcpy
@abdallahac62823 жыл бұрын
Is there a way to count how many spaces there are in the line?
@CodeVault3 жыл бұрын
Just iterate over the string's characters and compare each one with a space. There's no function that does this for you afaik.
@LYJManchesterUnited4 жыл бұрын
Thanks i manged to get it to work but i wanna store each extracted word into an array but it doesn't work i put for example piece = exampleArray [i]; But it doesn't seem to work . Any help would be greatly appreciated thanks!
@CodeVault4 жыл бұрын
You will have to use strcpy to copy each piece to the array: strcpy(exampleArray[i], piece); I made a video regarding the difference between assigning and strcpy for strings. Maybe it helps: kzbin.info/www/bejne/jIKrfGV7j797mJo
@fabianzapata59774 жыл бұрын
Hey men i have i question, where is located the function youre using in this video to evaluate each code line youre selecting
@CodeVault4 жыл бұрын
I'm not sure which function you're talking about... You mean the debugger?
@lanaalqabaz80805 жыл бұрын
I personally prefer to use sscanf although in your example it would require creating a string variable for each word in the string. Might be a bit more work but it's simpler :D
@CodeVault5 жыл бұрын
Definitely. If you already know the exact number of words the sentence it's going to have *sscanf* is a much better option. Although *strtok* is mostly for parsing an array of any number of elements, that's where using *sscanf* gets a bit tricky. The example was supposed to show when you have to parse a string in which is encoded an *unknown* number of elements (in this case, words). In that case, one call to *sscanf* won't be enough. You could use *sscanf* in a while loop (with the format string *%[A-Za-z] %s*) and just keep getting the first word every iteration, which is fancier but requires more work than just using *strtok*. Thanks for the feedback!
@d.f.14094 жыл бұрын
How can you put the pieces in an string array after this?
@CodeVault4 жыл бұрын
You can just assign them the piece variable: char* strArray[50]; int count = 0; ... // inside the loop strArray[count++] = piece;
@wishes_072 жыл бұрын
love u bro !! Great explanation !!
@abdullahhussein69055 жыл бұрын
Thank you Dude.
@crafty-jax74404 жыл бұрын
Great Video, I should be paying you my tuition.
@pierrethehandsome25184 жыл бұрын
How would you group elements together? Like say if I wanted "Let's Break" "This String" "Into Pieces"
@CodeVault4 жыл бұрын
That is tricky to do with strtok. I suggest you iterate over your string and break it up that way if you need this custom grouping.
@FernandoBasso3 жыл бұрын
Amazing and useful series for the amazing C Programming Language. Congrats are in order. 👍️ I would like to ask if it would be possible to make a video (or more than one, perhaps) about handling Unicode and UTF-8 strings (multi-byte strings) in C so we can handle non-ASCII-only, single byte characters as well.
@CodeVault3 жыл бұрын
Thanks! I will look into it.
@ayeshaaj17874 жыл бұрын
Can you please tell how can i print only unique characters of the paragraph using this strtok like how can i store and compare the words with the rest of the words
@CodeVault4 жыл бұрын
There's the strcmp function that I cover in this lesson here: code-vault.net/lesson/n14gi3en7o:1603733520733 If you store the words in an array and use strcmp over the whole array you should be able to find the unique occurrences
@ayeshaaj17874 жыл бұрын
@@CodeVault yeah i have stored the words in an array but how will i use this strcmp function over the whole array i can compare single words using this strcmp function but i dont know how to compare the whole array can u help me by writing a short code or just the part where the words will be compared i have been searching all over the internet for last 3 hours but couldnt find anything helpful
@CodeVault4 жыл бұрын
Something like this then: int i; for (i = 0; i < numUniqueWords; i++) { if (strcmp(uniqueWords[i], piece) == 0) { break; } } // If nothing found if (i > numUniqueWords) { strcpy(uniqueWords[++numUniqueWords], piece); } Where uniqueWords is your array and numUniqueWords is the number of currently unique words you have. This should be somewhere in the while loop for strtok, that 'piece' there is exactly the result from strtok.
@ayeshaaj17874 жыл бұрын
@@CodeVault const int size = 1000; char Paragraph_str[size]; cout
@CodeVault4 жыл бұрын
I think the call to strtok_s is wrong. Look at its signature and read at (2): en.cppreference.com/w/c/string/byte/strtok Seems like it needs 4 parameters. I suggest you just use strtok.
@4792102514 жыл бұрын
Thank you so much for this explanation
@sexer59535 жыл бұрын
but i have question, out of all the loops, why u chose while loop?
@CodeVault5 жыл бұрын
Good question! I could've used a for loop instead, and it would look something like this: for (char* piece = strtok(str, " "); piece != NULL; piece = strtok(NULL, " ")) { ... } It basically combined 3 lines of code into a really long single line. I just preferred the while loop since it is much easier to understand and explain. Feel free to use either one of them as long as it's easy to understand for you and for your team!
@piyushsaxena62435 жыл бұрын
Thanks a lot. Finally I understood strtok.
@ronjeremy12324 жыл бұрын
did you ever use this method in making a shell program?
@CodeVault4 жыл бұрын
Yes, actually. When you need to get the arguments you need to split at the space character.
@sumitsingh-fm2nz3 жыл бұрын
thanks man it was really helpful!
@briannguyen11344 жыл бұрын
how do you copy it to another char/string
@CodeVault4 жыл бұрын
You can use strcpy to copy strings in C
@Ol_Toby4 жыл бұрын
Is it possible to have multiple delimiters?
@CodeVault4 жыл бұрын
Yes, just pass multiple characters to the second parameter of strtok and it will break at either one of them.
@Ol_Toby4 жыл бұрын
@@CodeVault awesome that's great, thank you for responding so quickly
@slime_stick2 жыл бұрын
Can you please show us how to scan two strings with strtok at the same time? I tried doing so and just got both tokens to scan the first string...weird behaviour here is the code I tested: int main() { char str1[11] = "mat val mat"; char str2[15] = "MAT_A, 8, MAT_B"; char *wanted; char *args; wanted = strtok(str1, " "); args = strtok(str2, " "); while(wanted || args ) { if(!wanted && args) { printf("Error: too many arguments "); return 1; } if(wanted && !args) { printf("Error: too few arguments "); return 1; } printf("args is: %s wanted is: %s ", args, wanted); wanted = strtok(NULL, " "); args = strtok(NULL, " "); } if(!args && !wanted) printf("both strings are null "); return 0; } the output I got was: args is: MAT_A, wanted is: mat args is: MAT_B wanted is: 8, both strings are null
@CodeVault2 жыл бұрын
You basically can't use strtok for two different strings at the same time. strtok retains the previous string (and works with it) while you pass NULL to it. So, since it has some internal state, you can't just call it again with another string then come back to the previous string by calling strtok with NULL
@slime_stick2 жыл бұрын
@@CodeVault wow I can't believe you still reply to a video this old :) Is there a way to work around it and somehow use two tokens? like maybe using strtok_r or strsep or just creating another tokening function? I solved my specific problem by just replacing one token for a char array but I still wanna see it be done lol
@CodeVault2 жыл бұрын
Hmm... you could do it by retaining the state yourself and never pass NULL to strtok. Something like so: char str[] = "this is a test"; char* res = strtok(str, " "); printf("Result is %s ", res); res = strtok(res + strlen(res) + 1, " "); printf("Second result is %s ", res);
@swapnil8494 жыл бұрын
Thanks a lot....u can explain things so well :D
@nirajshewalkar32134 жыл бұрын
Thanks a lot,if you have uploaded any course on udemy or any other online programming site, please tell me.
@CodeVault4 жыл бұрын
There's a course on base convertions for number on Skillshare which you can check out here: www.skillshare.com/r/profile/Sergiu-Muresan/798146080 Otherwise, most content on Udemy is free and also on KZbin
@RaselAhmed-ix5ee4 жыл бұрын
one of the best tutorials can you help me with a problem its urgent please..reply ASAP
@CodeVault4 жыл бұрын
What's the problem?
@nightmareaselock73162 жыл бұрын
in which biblio this function contains?
@CodeVault2 жыл бұрын
In string.h, you can just include it like so at the beginning of your main.c file: #include
@K_chiranjeev_G3 жыл бұрын
You are Genius mate!!
@ahmedsheweita79883 жыл бұрын
Great Video
@CodeVault3 жыл бұрын
Yes, every time you call strtok, it will change piece.
@ahmedsheweita79883 жыл бұрын
Thank you for these amazing videos and for your fast response
@Ganjena2k4 жыл бұрын
Great explanation!
@eceblog74543 жыл бұрын
Awesome man keep doing I have the following string could you assist me to split it . The input as following:- +CMGR: "REC READ","12345",,"26/05/21,21:26:48+18"hello-world OK The out out should be as following:- 12345 26/05/21 21:26:48 hello-world
@rohanrn55154 жыл бұрын
The best explaination
@guerreroestoicox5 жыл бұрын
thanks dude, I am suscribed already.
@jcwarain7893 жыл бұрын
how did you debug in devc++?
@CodeVault3 жыл бұрын
It should work out of the box... I just add a breakpoint and run the program
@aliciasamuel3124 жыл бұрын
Hello! Just wanted to say that your explanations are very detailed and helpful. Is it possible however to set a barrier token and retrieve the character in between it? Example, I would like to retrieve the number 5000 from the input [5000] where "[ ]" is the barrier token so I can assign that number to a variable later on? Sorry if this sounds confusing and thanks in advance for any help :)
@CodeVault4 жыл бұрын
Just use the "[]" string as delimiters for strtok. strtok will split at any of the characters found in that string: strtok(exampleString, "[]");
@aliciasamuel3124 жыл бұрын
@@CodeVault Ooh i see. Thank you so much :D
4 жыл бұрын
These tutorials are great, you don't happen to be on lbry.tv though?
@CodeVault4 жыл бұрын
No. But I'm considering it! Meanwhile, the alternative for KZbin is our website: code-vault.net So if something goes awry here, you'll see all the content available on that website
@robertwitt12764 жыл бұрын
This is super helpful thanks!
@ayoubomari13473 жыл бұрын
this function will give you a list that contains the result of the splating, you need to enter in arguments section => the string that you want to split it and the string of split: std::list strSplice(std::string str, std::string splicer){ std::string sentence = ""; std::list commul; for(int i = 0; i + splicer.length() < str.length(); i++){ if(str.substr(i, splicer.length()).compare(splicer)){ sentence = sentence + str.substr(i, splicer.length()); }else{ commul.push_back(sentence); sentence = ""; i += splicer.length() - 1; } } commul.push_back(sentence); return commul; }
@CodeVault3 жыл бұрын
Yea, this is a nice solution. Only issue is that this in C++ and the video is specifically for C. Make sure you understand the difference between the two
@enricofr70793 жыл бұрын
thanks, great explaination!
@jestineabraham51853 жыл бұрын
if i am taking input from user its not working
@CodeVault3 жыл бұрын
How are you taking input from the user?
@nithyasree26984 жыл бұрын
It's really helpful...tq
@bharatnarayana84014 жыл бұрын
thank you so much for video saved my day {"sam","0004","SDE1","VLSI"} how to break this
@CodeVault4 жыл бұрын
You could probably just use: strtok(str, "\",\""); And ignore the first and the last piece you get (since those are just gonna have the { and } characters)
@しいなまひる-z5q2 жыл бұрын
if i have a sentence " Let's play a game ", can it split and return "Let's play a game" , thanks!
@CodeVault2 жыл бұрын
I think you will need to use strspn for this. There's a video about this function: code-vault.net/lesson/lhwc3bt5kq:1603733527132
@lalembahmanahsatyaalmahabb88264 жыл бұрын
How to split string into syllibles?
@CodeVault4 жыл бұрын
That depends on the pronuntiation of each word. So probably with a huge lookup table