Tag: 字符串

Gets()不起作用

我试图使用gets()从用户获取一个字符串,但程序似乎正在通过gets() 。 用户没有暂停输入。 为什么gets()没有做任何事情? char name[13]; printf(“Profile name: “); gets(name); printf(“\n%s”, name);

在C中拆分带分隔符的字符串 – 分段错误,无效空闲

我写了一个简单的代码来在C中用分隔符分割字符串。 当我删除所有自由时,代码工作得很好,但会导致内存泄漏。 当我不删除自由时,它不会显示内存泄漏但会给出分段错误。什么是拧干以及如何解决? #include #include #include unsigned int countWords(char *stringLine) { unsigned int count = 0; char* tmp = stringLine; char* last = 0; const char delim = ‘/’; while (*tmp) { if (delim == *tmp) { count++; last = tmp; } tmp++; } return count; } char **getWordsFromString(char *stringLine) { char** sizeNames = 0; […]

如何从C中的字符串中删除逗号

说我有一个“10,5,3”的字符串如何摆脱逗号,所以字符串只是“10 5 3”? 我应该使用strtok吗?

比较C – strcmp中的字符串

我在比较C中的字符串时遇到了麻烦(我很擅长)。 我在此服务器应用程序上有套接字等待接受来自客户端的数据。 在我程序的这个特定部分,我希望能够根据从客户端收到的数据执行MySQL查询。 我希望能够知道接收到的数据何时具有“newuser”的值以启动简单的注册过程。 Strcmp返回一个正值1,我相信我应该得到一个0,因为值应该相等。 源代码: //setup socket //loop and select structure to handle multiple connections if ((nbytes = recv(i, buf, sizeof buf, 0)) <= 0) { // got error or connection closed by client if (nbytes == 0) { // connection closed printf("selectserver: socket %d hung up\n", i); } else { perror("recv"); } close(i); […]

在C中返回一个字符串数组

我正在进行一项任务,我需要让一个方法返回一个指向字符串数组的指针,从文件中读取。 该函数有效,但是当我尝试将返回的指针分配给main函数中的变量时,我最终得到一个空值数组。 这是我的代码: #include char **buildAnsArray(){ FILE *in; int num, i; in = fopen(“data.txt”, “r”); fscanf(in, “%d”, &num); char ansArray[10][num]; for(i = 0; i < num; i++){ fscanf(in, "%s", ansArray[i]); } return ansArray; }; main(){ char **ansArray = buildAnsArray(); } 我正在使用的输入文件(data.txt)以: 3 B 20 1101 ansArray(在buildAnsArray中)正确包含{‘B’,’20’,’1101’},但ansArray(在main中)为空。 我知道我可以将所有内容移动到main,而不用担心将指针返回到字符串数组,但是赋值需要buildAnsArray函数。 我该怎么做才能解决这个问题?

将字符串数组传递给函数分段错误

所以,我在下面编写了这个代码,它应该将一个字符串数组传递给一个函数,然后将该数组按字母顺序排序。 我知道我做的方式可能并不漂亮,但它适用于学校,我需要将它传递给函数并使用strcmp 。 我遇到了一些问题,但我设法将所有编译错误排序。 但是,现在,当我尝试运行程序时,我得到错误segmentation fault(core dumped) 。 有人能引导我到我犯错误的地方吗? #include #include #include #include void sort(char *str[]); int main() { char *states[11] = {“Florida”, “Oregon”, “California”, “Georgia”}; sort(states); return 0; } void sort(char *str[]) { int x, y; char alpha[11] = {0}; for(x = 1; x < 4; x++){ for(y = 1; y 0){ strcpy(alpha, str[y […]

乘以两个数字数组

任何人都可以告诉我如何在C中乘以两个数字数组? 数组数组基本上来自两个包含数字的字符串。 例如:123456和132465。 编辑:我有两个字符串, S1 = “123456” , S2=”132546″ 。 然后我将这两个字符串转换为整数数组,即int IS1 [6]和IS2 [6] IS1[1] = 1, IS1[2] = 2…… 和 IS2[1] = 1, IS2[2] = 3….. 现在我必须多了几个这两个阵容。 请帮忙。

在C中过滤字符串中的字符

所以下面是一个函数,它应该从字符串中过滤出给定的字符ch,并将过滤后的版本放在结果中。 底部的puts语句最终会输出与原始字符串相同的字符串,而不管过滤后的字符是什么,结果最终为空。 void filter_ch_index(char string[], char result[], char ch) { result[0] = NUL ; // placeholder int i; for(i = 0; i < strlen(string); i++) { if(string[i] != ch) { result[i] = string[i]; } } puts(result); }

将char数组转换为字符串

我有一个char数组,我试图将其转换为指向字符串的char指针。 我相信这涉及获取指向char数组的第一个元素的指针,并在char数组的末尾添加一个空字符。 这样做的原因是我试图将它传递给Pebble智能手表的SimpleMenuItem ,其中.title需要获取一个char* ,指向一个字符串。 虽然我已经能够填充char数组并且(我认为)添加了null字符并获得了指针,但我无法在我的卵石上看到标题。 我不确定这是一个卵石问题还是我的C理解问题,但我觉得它可能是前者。 卵石代码(C): void in_received_handler(DictionaryIterator *received, void *context) { dataReceived = dict_read_first(received); APP_LOG(APP_LOG_LEVEL_DEBUG, “read first”); while (dataReceived != NULL){ if (dataReceived->key == 0x20) { //original is of the format “# random string”, ie “4 test name” char* original = dataReceived->value->cstring; APP_LOG(APP_LOG_LEVEL_DEBUG, original); char originalArray[strlen(original)]; //copy over to originalArray for (unsigned […]

通过一串字符并提取数字?

给定一串字符,我如何通过它并将该字符串中的所有数字分配给一个整数变量,而忽略所有其他字符? 当有一串字符已经通过gets()读入时,我想要执行此任务,而不是在读取输入时。