Tag: cstring

获取Cstrings的控制台输入

注意:这是在C ++中但使用C风格的字符串 你好, 我正在进行一项任务,我需要从控制台获取输入并将其保存到cstring。 一切都编译得很好,但是当程序运行时,它只是跳过了从用户那里得到的输入。 因此它将输出:“输入要插入的字符串:”然后跳过cin.getline函数,然后执行下一个命令。 这是我的头文件,cstring的声明,以及我遇到问题的代码行。 #include “stdafx.h” #include #include using namespace std; int main() { char tempCString[500] = {}; //…code snipit… cout << "Enter string to be inserted: " << endl; cin.getline(tempCString, 500, '\n'); //I've also tried cin.getline(tempCString, 500); //…end code snipit… return 0; } 注意:我不能使用“cin >> tempCString”因为它只能获得第一个空格的输入,我需要从控制台获取输入到换行符的所有内容。 谢谢

我应该如何为c-string char数组分配内存?

因此,在尝试学习如何在C ++中使用C-Strings时,我遇到了内存分配问题。 这里的想法是创建一个新的字符串格式(s1 + sep + s2)我正在使用的文本提供了标题,所以我不能改变它,但我遇到了试图设置大小的问题char str []。 我收到一个错误,说sLength不是常量,因此不能用于设置数组的大小。 我对C ++比较陌生,所以这是一个两部分问题。 这个策略实际上是为新arrays分配内存吗? 如果使用strlen(char *)无法获得常量值,如何正确设置数组大小? char* concatStrings(char* s1, char* s2, char sep){ int sLength = strlen(s1) + strlen(s2) + 3; //+1 for char sep +2 for \0 at end of string char *str = new char[sLength]; strcpy (str, s1); str [sLength(s1)] = sep; strcat (str, […]

分解字符串并将其存储在数组中

我想分解一个句子并将每个字符串存储在一个数组中。 这是我的代码: #include #include int main(void) { int i = 0; char* strArray[40]; char* writablestring= “The C Programming Language”; char *token = strtok(writablestring, ” “); while(token != NULL) { strcpy(strArray[i], token); printf(“[%s]\n”, token); token = strtok(NULL, ” “); i++; } return 0; } 它一直给我分段错误,我无法弄明白。 我相信当我将令牌复制到我的arrays时,它有一些事情要做。

如何从C字符串中删除第一个字符?

谁能帮帮我吗? 我需要从C中的char *中删除第一个char * 。 例如, char * contents包含一个’\n’字符作为数组中的第一个字符。 我需要检测并消除这个字符,在它被“消毒”后修改原始变量。 任何人都可以帮我代码吗? 我对C完全不熟悉,似乎无法弄明白。

如何在C中逐字翻译句子?

#include int main(void) { int i,j; int wordstart = -1; int wordend = -1; char words[]= “this is a test”; char temp; // Reverse each word for (i = 0; i < strlen(words); ++i) { wordstart = -1; wordend = -1; if(words[i] != ' ') wordstart = i; for (j = wordstart; j < strlen(words); […]

C字符串不可变?

根据我的理解,两行代码都创建了6个元素的字符串: char * output = “AAAAAA” ; char * output [6] ; 那么,当我试图改变第一个数组字节时,为什么cprogramm在第一个分配情况下崩溃了。 为什么不在第二种情况下崩溃? * output = 49; printf(“%s\n”,output);

使用指针简单修改C字符串

我有两个指向同一个C字符串的指针。 如果我将第二个指针递增1,并将第二个指针的值赋给第一个指针的值,我希望改变第一个字符串的第一个字符。 例如: #include “stdio.h” int main() { char* original_str = “ABC”; // Get pointer to “ABC” char* off_by_one = original_str; // Duplicate pointer to “ABC” off_by_one++; // Increment duplicate by one: now “BC” *original_str = *off_by_one; // Set 1st char of one to 1st char of other printf(“%s\n”, original_str); // Prints “ABC” (why not […]

只需加密C中的字符串即可

我正在尝试加密打开url时正在制作的游戏上的查询字符串。 它不必复杂,事实上因为我在游戏引擎上工作所以它需要尽可能简单。 如果我的水平太低,它往往会大惊小怪。 我已经创建了查询字符串,我只需要获取它的每个字符并从字符中减去15以轻微加密它。 我只是想做一个能阻止大多数用户的简单加密。 我希望我能给出一个代码示例但我在C中没有太多经验,我甚至不确定从哪里开始。 游戏引擎的api通常会让一切变得简单。

无法修改C字符串

请考虑以下代码。 int main(void){ char * test =“abcdefghijklmnopqrstuvwxyz”; test [5] =’x’; printf(“%s \ n”,test); 返回EXIT_SUCCESS; } 在我看来,这应该打印abcdexghij。 但是,它只是终止而不打印任何东西。 int main(void){ char * test =“abcdefghijklmnopqrstuvwxyz”; printf(“%s \ n”,test); 返回EXIT_SUCCESS; } 然而,这工作得很好,所以我误解了操纵C字符串或其他东西的概念吗? 如果它很重要,我正在运行Mac OS X 10.6,它是我正在编译的32位二进制文​​件。

为什么我首先要在strcat()之前使用strcpy()?

为什么此代码会产生运行时问题: char stuff[100]; strcat(stuff,”hi “); strcat(stuff,”there”); 但这不是吗? char stuff[100]; strcpy(stuff,”hi “); strcat(stuff,”there”);