Tag: string

面试问题:修剪字符串中的多个连续空格

这是一个面试问题寻找最佳的最佳解决方案来修剪字符串中的多个空格。 此操作应该是就地操作。 input = “I Like StackOverflow a lot” output = “I Like StackOverflow a lot” 不允许使用字符串函数,因为这是一个面试问题。 寻找问题的算法解决方案。

使用空格作为分隔符将字符串拆分为C / C ++中的字符串数组的更好方法

对不起,我的C / C ++不是那么好,但是对我来说,下面的现有代码看起来像垃圾。 它也有一个错误 – 当str =“07/02/2010”由’\ 0’终止时失败 – 。 我认为不是修复错误,而是可以重写。 在Python中它只是’kas\nhjkfh kjsdjkasf’.split() 。 我知道这是C-ish代码,但分割字符串不是那么复杂! 坚持相同的签名,而不使用额外的库,我怎样才能改进它 – 让它简短而甜美? 我可以说这个代码闻起来,例如因为else子句一直到最后。 线路失败: _tcsncpy_s( s.GetBuffer((int) (nIndex-nLast)), nIndex-nLast, psz+nLast, (size_t) (nIndex-nLast) ); 当字符串“07/02/2010”以’\ 0’结尾时,它将尝试将11个字符写入只有10个字符长的缓冲区。 全function: #define // This will return the text string as a string array // This function is called from SetControlText to parse the // […]

使用scanf()从键盘读取时从上一个输入读取换行符

这应该是非常简单的,但是我无法从键盘读取连续的输入。 这是代码: #include #include int main() { char string[200]; char character; printf (“write something: “); scanf (“%s”, string); printf (“%s”, string); printf (“\nwrite a character: “); scanf (“%c”, &character); printf (“\nCharacter %c Correspondent number: %d\n”, character, character); return 0; } 怎么了 当我输入一个字符串(例如:计算机)时,程序会读取换行符( ‘\n’ )并将其置于character 。 以下是显示的外观: write something: computer computer Character: Correspondent number: 10 此外,该程序不适用于包含多个单词的字符串。 […]

如何正确比较命令行参数?

我正在尝试编写一个在main中接受参数的C代码; 因此,当我在cmd中编写一些字符串时,程序会在其中执行某些操作。 但我做错了什么,我找不到它。 这是代码: #include #include int main(int argc, char * argv[]){ //File name is main.c if(argc != 3) printf(“Wrong!!!!!!!!!”); else if (argv[1] == “-s”) girls(); //Prints “Girls” else if(argv[1] == “-k”) boys(); //Prints “Boys” else printf(“OMG!!”); } 在cmd; gcc -o gender main.c gender -s pilkington 我输入那些命令。 总是输出 “我的天啊!!” 哪部分错了?

实现良好的“itoa()”function的正确方法是什么?

我想知道我执行“itoa”function是否正确。 也许你可以帮我把它变得更“正确”,我很确定我错过了什么。 (也许已经有一个库按我想要的方式进行转换,但是……找不到任何东西) #include #include #include #include char * itoa(int i) { char * res = malloc(8*sizeof(int)); sprintf(res, “%d”, i); return res; } int main(int argc, char *argv[]) { …

在C / C ++(ms)中将char 转换为/从tchar 的最简单方法是什么?

这似乎是一个非常柔软的问题,但我总是很难查找这个函数,因为似乎有很多关于char和tchar的引用的变化。

使用scanf()读取的字符串大小不超过

编辑:对于我的课,我必须使用scanf 。 所以推荐其他输入方式并不是我正在寻找的解决方案(如果有一个涉及scanf)。 如果我正在阅读小项目的用户输入(例如,游戏)。 可以说我问would you like to play? 这将接受yes或no答案。 所以我写了一些像这样的简单代码: #include int main(void) { char string[3]; //The max number of letters for “yes”. printf(“Would you like to play?”); scanf(“%s”, string); } 所以这段代码应该简单地要求他们输入yes或no 。 我将我的char array的长度设置为3 。 这样它足够大,可以保持yes ,也可以no 。 但是如果有人输入了诸如yesss无效输入,我知道如何比较yesss的字符串来处理这样的事件,但是这不会在技术上/可能覆盖我声明的其他局部变量,因为它会延伸到我的长度之外arrays? 如果是这样,有没有办法处理这个限制3个输入字符或什么? 如果没有,为什么/如何知道只输入3的大小? *注意:我是C的新手,我在这方面找不到多少所以即使这很简单,我也很感激。 因为我显然缺少一些东西。 我来自java背景,这甚至都不是问题。

strlen – 字符串的长度有时会增加1

我正在做一些C拼图问题。 在大多数情况下,我能够找到正确的答案,但有了这个答案,我遇到了问题。 我通过使用编译器知道正确的答案,但我不知道原因。 看看代码: char c[] = “abc\012\0x34”; strlen(c)会使用标准C编译器返回什么? 当我期望的是3时,我的编译器返回4。 我认为是strlen()会搜索第一次出现的NULL字符但不知何故结果是比我预期的多一个。 知道为什么吗?

结束时带有垃圾字符的字符串数组

我有一个char数组缓冲区,我用它来存储用户将逐个输入的字符。 我下面的代码有效,但有一些我无法弄清楚的故障: 当我执行一个printf来查看Buffer中的内容时,它确实填满了但是我最后得到了垃圾字符 尽管被声明为char Buffer [8],它不会停留在8个字符; 有人可以向我解释发生了什么,也许我可以解决这个问题? 谢谢。 char Buffer[8]; //holds the byte stream int i=0; if (/* user input event has occurred */) { Buffer[i] = charInput; i++; // Display a response to input printf(“Buffer is %s!\n”, Buffer); } 输出: tagBuffer是1┬┬w! tagBuffer是12┬w! tagBuffer是123w! tagBuffer是1234! tagBuffer是12345! tagBuffer是123456 =! tagBuffer是1234567! tagBuffer是12345678! tagBuffer是123456789!

C – > sizeof字符串总是8

#include “usefunc.h” //don’t worry about this -> lib I wrote int main() { int i; string given[4000], longest = “a”; //declared new typdef. equivalent to 2D char array given[0] = “a”; printf(“Please enter words separated by RETs…\n”); for (i = 1; i sizeof(longest)) { longest = given[i]; } */ printf(“%lu\n”, sizeof(given[i])); //this ALWAYS RETURNS EIGHT!!! […]