Tag: 字符串

签名hex字符串到long int函数

我需要一个函数将32位或24位带符号(二进制补码)hex字符串转换为long int。 需要在32位和64位机器上工作(无论长度大小如何),无论机器是否是双补机,都需要工作。 解: long int hex2li (char hexStr[], int signedHex) { int bits = strlen (hexStr) * 4; char *pEnd; long long int result = strtoll (hexStr, &pEnd, 16); if (pEnd[0] == ‘\0’) { if (signedHex) { if (result >= (1LL << (bits – 1))) result -= (1LL << bits); } return (long int) […]

来自GCC编译器的程序段错误:连接两个字符串

以下代码从GCC编译器引发segment error : char *str1 = “India”; char *str2 = “BIX”; char *str3; str3 = strcat(str1, str2); printf(“%s %s\n”, str3, str1); 问题是str3=strcat(str1, str2) 。 所以我的问题是:对于GCC编译器,它禁止指向同一个东西的两个指针?

删除字符串的字符

我正在尝试编写一个代码,要求用户输入一个字符串并除了按字母顺序排列所有字符。 现在我自己做了,似乎没有正常工作。 我是字符串的新手,所以我正在努力理解和掌握字符串。 我试图在Mac上使用gdb,但我没有所有的function来理解这一点。 能否请你帮忙? 代码必须做什么:用户输入(例如): h**#el(l)o&^w 输出是hello. 这是我的代码: #include #include int main() { char string[100]; int i; int seen = 0; printf(“Enter String: “); scanf(“%s”, string); for (i=0; string[i]!=’\0′; i++) { if (((string[i]’z’)&&(string[i]’Z’)) ||string[i]!=’\0′) { seen = 1; } else seen = 0; } if (seen==0) { printf(“%s”, string); } }

swig从struct中的变量获取返回类型作为java中的字符串数组

对于一个小型Java项目,我需要与用C编写的现有代码进行交互,所以为了简单起见(不幸的是我不是C / C ++程序员……)我决定使用swig。 我遇到的第一个问题:返回NULL分隔字符串的C函数导致返回String的包装代码,只包含第一个值,由Flexo提供的3(!)可能解决方案解决: SWIG从String获取返回类型java中的字符串数组 在继续开发这个项目时,我遇到了第二个问题(类似?)模式让我感到困惑:headerfile包含一个结构“PROJECTDETAILS”,它反过来包含一个变量itemList(应该)包含一个NULL分隔的String。 用于itemList的swig生成的getter将第一个结果作为String返回,就像我原始链接问题中的GetProjects函数一样(包含第一个结果的String)我试图将Flexo提供的答案应用于此问题,但是我’无法“键入”itemList变量 C头文件中的函数指出: typedef struct _PROJECT { int version; unsigned char vM; unsigned char fM; } * PROJECT; typedef struct _PROJECTDETAILS { int infoType; union { char *itemList; /* Returns a NULL-delimited string */ char *projectName; } info; } PROJECTDETAILS; DllImport PROJECT OpenProject dsproto((int, char *)); DllImport int GetProjectDetails […]

数组随机排序

我有下面的代码,我希望从文件中读取文本,在数组中存储单词,然后以随机顺序打印出来。 最终的数组是int,但应该是char,它不会给我正确的答案。 #include #include #include #include int main() { char message[10][150], buffer[150]; int i = 0; int cntr = 9; char freeArray[9]; srand(time(NULL)); freeArray[i] = rand() % cntr; FILE *file_in; file_in = fopen(“test.txt”, “r”); while (fgets(buffer, 150, file_in)) { i = rand() % cntr; strcpy(message[freeArray[i]], buffer); } while (cntr >= 0) { i = rand() […]

C程序计算输入文件中的总字数

输入文件在第2行包含一个完全空行,在文本的最后一个句号后包含一个不必要的空格。 有了这个输入文件,我得到48个单词,而我想要得到46个单词。 我的输入文件包含: “查尔斯达尔文从”双城记“开幕 这是最好的时期,这是最糟糕的时期。 这是智慧的时代,是愚蠢的时代。 这是信仰的时代,是令人怀疑的时代。 “ 这是我尝试的方式: #include #include #include #include #define max_story_words 1000 #define max_word_length 80 int main (int argc, char **argv) { char story[max_story_words][max_word_length] = {{0}}; char line[max_story_words] = {0}; char *p; char ch = 0; char *punct=”\n ,!.:;?-“; int num_words = 1; int i = 0; FILE *file_story = fopen […]

存储使用空格输入的字符串

如何存储使用空格输入的字符串。 例如:使用换行输入的字符串可以使用for循环存储然后存储到数组中,类似地如何存储作为单行输入但带有空格的字符串

想要从双指针传递单个char指针

我必须编写一个函数,它接受2个双指针(都是char类型)。 第一个双指针有一串查询值,第二个指针有停用词。 我们的想法是从查询字符串中删除停用词并返回没有这些停用词的所有单词。 例如 输入 – 查询:“the”,“new”,“store”,“in”,“SF” stopwords: “the”, “in” OUTPUT新店SF 我在尝试使用strtok时编写了以下代码,它只接受char类型的单个指针。 如何访问双指针的内容? 谢谢 #include void remove_stopwords(char **query, int query_length, char **stopwords, int stopwords_length) { char *final_str; final_str = strtok(query[0], stopwords[0]); while(final_str != NULL) { printf(“%s\n”, final_str); final_str = strtok(NULL, stopwords); } }

用C语言在字符串中查找字符的堆栈

#include #include main() { int i; int *b, *z; char name[30]; char vowel[5] = {‘A’, ‘E’, ‘I’, ‘O’, ‘U’}; char consonants[23] = {‘B’,’C’,’D’,’F’,’G’,’H’,’J’,’K’,’L’,’M’,’N’,’P’,’Q’,’R’,’S’,’T’,’V’,’W’,’X’,’Y’,’Z’}; printf (“input the string: “); scanf (“%s”, name); printf (“The string is %s\n”, name); for (i=0; name[i]!=’\0′; i++){ if (b=strchr(vowel, name[i]) != NULL) { printf (“The vowels are: %s\n”, b); } else […]

c中字符串的动态内存分配

我发现这段代码完美无缺。 #include #include int main(int argc,char *argv[]) { char* s; /* input string */ s=malloc(sizeof(s)); int c; if(argc==1){ // if file name not given while (gets(s)){ puts(s); } } } 我不明白的是,字符串是如何存储在内存中的。我只为指针s分配内存,指针是4个字节。现在用户给出的输入字符串存储在哪里?