Tag: 字符串

我怎么去Flushing STDIN?

我有一个函数(在C中)从用户获取输入,(使用scanf)将它存储在unsigned int中,并将输入返回给处理它的其他函数: unsigned int input(void) { unsigned int uin; scanf(“%u”, &uin); return val; } 我想知道,因为我应该刷新标准输入,我想使用getc,vis-a-vis使用while循环: while (getc != ‘\n’) { … } 但是,我不确定如何: A)在getc中执行操作,就像我应该如何处理检查并将值连接到每个获得的字符,或者,无论我是否要getc,然后从那里连接,完全删除scanf。 B)这是否是最合适的方式。 有些善良的人可以给我一些提示和指示:) 谢谢。

检查字符串是否包含C 中的子字符串

我想知道是否有办法在char*数组中查找substring 。 我似乎无法从Java与C相当的Contains() 例如: char *buff = “this is a test string. The string contains random text.”; 假设我输入substring以与buff进行比较,并查看在buff找到substring次数。 我能够找到第一次出现,但有多次出现的问题。 有人可以帮我吗?

指针作为参数为null但是在函数指针不为null之后

你好,我有我的function: void enterString(char *string) { string = (char*)malloc(15); printf(“Enter string: “); scanf(“%s”,string); //don’t care about length of string now } int main() { char *my_string = NULL; enterString(my_string); printf(“My string: %s\n”,my_string); /* it’s null but i want it to show string i typed from enterString */ return 0; } 我想从主要的字符串函数show中串起来…我不知道你是否理解我。 谢谢 :)

printf返回一个字符串

是否有类似printf的函数可以返回字符串而不是打印它? 我有一个以某种颜色打印字符串的函数,但它必须是字符串文字,而不是接受像printf这样的变量。 // Function declaration (Assums YELLOW and NORMAL are the unix constants for terminal colors void pYellow(char *str) { printf(“%s%s%s”, YELLOW, str, NORMAL); } //Function call void pYellow(“This is a string”); 如果我想用变量打印颜色,它就不会起作用。 像pYellow(“Num: %d”, 42); 会出错,因为它的参数太多了。 做pYellow(printf(“String”)); 也不会工作。 TL:DR我想知道是否有一个printf方法返回一个字符串而不是打印它。

C – 如果长度不同,则将2个字符串中的数字加在一起

如果我有两个字符串: a = “1234” b = “4321” 我可以像这样将两个数字加在一起: for(i=0; i 9){ carry = 1; sum-=10; } answer[i] = sum+48; } if(carry) answer[i++] = carry+48; answer[i]= 0; 然后反转它(宽度等于strlen(a))。 如果以下情况我怎么能做同样的事情呢? a = “12345” b = “4321” 我需要重新分配内存吗? 或者是什么? (顺便说一下 – 我试图解决的问题是使用50位数的所有数字,所以strtoul或strtoull是不可理解的。据我所知。 这是我的代码到目前为止 。)

如何在c中实现计数hashmap?

我有6个常量字符串(每个5个字母) 我得到了几个单词的流(在这6个单词中)。 我想计算每个单词出现的次数。 我怎样才能在C中实现它? 我试过了: char searchEngineNames[6][5] = { “waze_”, “faceb”, “fours”, “googl”, “fueli”, “yello” }; static void foo(const char* res_name, int success, void *context, char *last_modified) { if (success){ for (int i=0; i<6; i++) { char substringFiveChars[6]; strncpy(substringFiveChars, res_name, 5); char substringFiveChars[6]; substringFiveChars[5] = 0; if (strcmp(searchEngineNames[i],substringFiveChars) == 0) { … } .. } […]

从字符串中删除所有重复的字符 – c

我试图删除给定字符串中的所有重复字符。 例如“asdasd”=“asd”或“abbgga”=“abg”。 当我编译并且当cmd开始运行它时,我正在“停止工作”消息。 这是我的代码: #include #include #include void delMul(char str[]){ int i,j=0; int s[26]; char k ; for ( i = 0; i < 26; i++) { s[i] = 0; } for (i = 0; i < strlen(str); i++) { k = str[i] – 'a'; if(s[k] == 0) { s[k]++ ; str[j++] = str[i]; } […]

使用指针在c中打印字符串

我只是在C中打印一些字符。我已经声明了char c并分配了它的字符。 然后使用for循环我尝试逐个打印字符。 当然,我使用了指针。 #include #include int main() { char c[4] = {“hia”}; int i; for(i=0;i<4;i++) { printf(&c[i]); } return 0; } 然而,当我使用turbo编译我的代码时,我得到输出“hiaiaa”而不是“hia”! 我在这做错了什么?

奇怪的错误:在C中处理字符数组时中止陷阱

我想将每个字符的二进制值存储在一个字符串中并将其存储在一个数组中。 但是当我开始搞乱memset这样的function时,我无法控制调试。 #include #include int main() { char str[8]; char *ptr = “Hello”; int i; for(; *ptr != 0; ++ptr) { printf(“%c => “, *ptr); /* perform bitwise AND for every bit of the character */ for(i = 7; i >= 0; –i) if(*ptr & 1 << i) str[7-i]='1'; else str[7-i]='0'; //(*ptr & 1 << […]

比较字符串与通配符

在C中,我怎样才能将包含* (可以是任何字符组合)的字符串与字符串的二维矩阵进行比较? 例如,我有一个单词go*s 。 它可以生成单词“华丽”( *是“orgeou”),“善良”,“山羊”,“去”等。我应该从整个字典中读取单词并将它们与包含一个或一个单词的单词进行比较更多星号( * )。 必须打印每个可以用带星号的单词生成的单词。 如果两个单词的长度相同,那么很容易比较,因为*只能是一个字母。 int fq(char *s1, char *s2){ int i, a=0, b=0, s=0; while (1){ if (s1[a]==’\0′) break; a++; } if (strlen(s1)==strlen(s2)){ for(i=0; i<a; i++){ if (s1[i]=='*'){ b++; } if (s1[i]==s2[i]){ b++; } } } if (b==a) return 1;