Tag: 字符串

lzss解码EOF字符问题

我正在使用Okamura的lzss实现: https ://oku.edu.mie-u.ac.jp/~okumura/compression/lzss.c int enc_i = 0; int getbit(int n, unsigned char *enco_buf) /* get n bits */ { int i, x; static int buf, mask = 0; x = 0; for (i = 0; i < n; i++) { if (mask == 0) { //if ((buf = fgetc(infile)) == EOF) return EOF; //if ((buf […]

char str 和char * str作为函数参数有什么区别?

假设我们有以下函数原型: void function1(char str[]); void function2(char *str); 现在说我们有一个字符串char name[] = “John”; 我们希望通过这些function。 两者有什么区别? 它们的用途和局限是什么? 是否存在一种优先于另一种情况的情况? 如果将字符串初始化为char *name = “John”它会有所作为吗? 我理解在函数中使用char str[]和char *str之间的区别,但我不知道它们作为函数参数或参数的行为。

使用C在文件中替换字符串

我还没有实现这个,我还处于思考阶段,但我必须通过一个文件并用另一个字符串替换某个字符串。 例如, <img src="https://stackoverflow.com/images/logo.gif" … 应该成为 <img src="/proxy/www.example.comhttps://stackoverflow.com/images/logo.gif" … 关于我如何处理这个问题的任何建议? 也许有一些“字符串替换”C函数可以为我做这个我不知道的…? 现在,如果我必须自己编写这个函数,我会把它作为参数给出文件,要替换的字符串,替换字符串。 然后我会手动浏览文件并查找字符串的出现并重新创建它。 然而,这似乎效率很低。 有没有更好的方法来做到这一点? 谢谢,Hristo

以逗号分隔的字符串的解析函数

假设我有一个像这样的字符串”cmd,param1,param2″ 。 String是Arduino String类型。 https://www.arduino.cc/en/Reference/String 我想提取用逗号分隔的每个子字符串。 我已经成功编写了像这样的特定案例的代码。 这是代码; String = str_data(‘cmd,param1,param2’); int firstCommaIndex = str_data.indexOf(‘,’); int secondCommaIndex = str_data.indexOf(‘,’, firstCommaIndex+1); String cmd = str_data.substring(0, firstCommaIndex); String param1 = str_data.substring(firstCommaIndex+1, secondCommaIndex); String param2 = str_data.substring(secondCommaIndex+1); 我的问题是有一个解决一般情况的函数。 该字符串可以用任意数量的逗号分隔。 我想有一个看起来像这样的function; String parserCommaDelimited(String input_delimited_str, int nth_param_num) { //implementation } 假设input_delimited_str=”cmd,param1,param2,param3,param4″ parserCommaDelimited(input_delimited_str, 1)返回”cmd” 。 parserCommaDelimited(input_delimited_str, 5)返回”param4″ 。

在c 中反转一个字符串

我试图扭转一个字符串到位。 void reverseStr(char *str) { int i; int length; int last_pos; length = strlen(str); last_pos = length-1; for(i = 0; i < length / 2; i++) { char tmp = str[i]; str[i] = str[last_pos – i]; str[last_pos – i] = tmp; } } Program received signal SIGSEGV, Segmentation fault. 0x0000000000400893 in reverseStr (str=0x400974 "Haus") at […]

在C中构造String

这是我用于从char数组构造字符串的演示代码,有没有更好的方法来构造String *RV200# *FV200# ?? int main() { char String4H1[10] = “*FV”; char String4H3[10] = “*RV”; char String4H2[10] = “#”; char data1[10]; char data2[10]; snprintf(data1,4, “%03d”, 200); //Convert integer to string function snprintf(data2,4, “%03d”, 200); //Convert integer to string function ConvertToString(String4H1,data1, 3); //*FV200 ConvertToString(String4H3,data2, 3); //*RV200 ConvertToString(String4H1,String4H2,6); //*FV200# ConvertToString(String4H3,String4H2,6); //*RV200# //Display String4H1 And String 4H3 } […]

当我尝试运行测试时,为什么会出现“Segmentation Fault”错误?

我编写了一个函数来确定是否分配默认值(如果标志不存在,它会分配默认值,并且如果标志存在,则分配用户传递的值)。 我正在尝试用字符串测试我的函数,看看它是否给了我正确的数字。 当我尝试运行测试时,我不断收到“Segmentation Fault”,它编译,但测试不起作用。 🙁 这是我的头文件: #ifndef COMMANDLINE_H #define COMMANDLINE_H #include “data.h” #include struct point eye; /* The variable listed above is a global variable */ void eye_flag(int arg_list, char *array[]); #endif 这是我的实现文件: #include #include “commandline.h” #include “data.h” #include “string.h” /* Used global variables for struct point eye */ void eye_flag(int arg_list, char *array[]) { […]

从Char *数组中提取数字(C-String)

我有一个以这种格式出现的字符串: .word 40 我想提取整数部分。 整数部分总是不同,但字符串始终以.word开头。 我有一个tokenizer函数,它可以处理除此之外的所有内容。 当我将.word (.word with a space)作为分隔符时,它返回null。 我该如何提取数字? 谢谢

C中的fscanf csv未分配值

我试图创建一个文件来读取包含CSV的文本文件。 但是出于某种原因,一些Fscanfs不会返回值,但有些值会返回。 FILE* reader; char OptionOne[30]=””; char OptionTwo[30]=””; char OptionThree[30]=””; char OptionFour[30]=””; char answer[1]=””; char CorrectAnswer[1]; char Question[51]; reader = fopen(“C:\\Users\\Finley\\Desktop\\Programming\\QuizMachine\\QuizMachine\\fscanf_questions.txt”, “r”); if (reader == NULL) { printf(“Unable to Open File: %s\n”, FileName); } fscanf(reader, “%[^,],”, Question); fscanf(reader, “%[^,],”, OptionOne); fscanf(reader, “%[^,],”, OptionTwo); fscanf(reader, “%[^,],”, OptionThree); fscanf(reader, “%[^,],”, OptionFour); fscanf(reader, “%[^,],”, answer); 为什么第一个fscanf返回一个值,但所有其他值都没有返回值。 我看不到任何东西,它们看起来都是一样的同样的格式文件格式是这样的: 你用什么函数打开文件?,fscanf,fclose,fopen,main,3 […]

无法读取以逗号结尾的字符串

我有一个函数,它读入一个类似于下面的文件到一个结构中。 我正在努力确保结构正确填充; 并且,它已正确填充性别,身高和体重。 但是,我无法validation它的名称(字符数组)部分是否正确填充。 要读入的示例文件: Name,Gender,Height,Weight Tanner,M,71.8,180.25 John,M,70.75,185.3 Parker,F,65.25,120.3 Meeks,M,57.25,210.2 Big,M,57.5,150.1 Jackson,F,52.1,163.4 结构定义: struct canData { char name[50]; char gender; float height; float weight; }CD[structSize]; // end struct BP 读取文件的循环的一部分: char name[50]; char gender; float height; float weight; int position = 0; filePtr = fopen(fileName, “r”); // open file if (filePtr == NULL) // error […]