Tag: char

如何检查C字符串中是否存在单个字符?

我想检查单个字符串是否在C字符串中。 字符是’|’ 用于Linux中的管道(实际上,我也想检查'<' , ‘>’ , ‘>>’ , ‘&’ )。 在Java中我可以这样做: String.indexOf() 但是如何在C中执行此操作,而不循环遍历整个字符串( char*字符串)?

修复这个if,else语句

问题似乎正在发生 第18行:警告:指针和整数之间的比较 第22行:错误:’else’之前的预期表达式 我究竟做错了什么? 有更好的方法吗? #include int main(void) { char pname[25]; char Y[1]; char N[1]; char choice[1]; printf(“when responding to Yes or No questions use Y/N.\n”); printf(“Hello,traveler Welcome to the Castle of Atal….” “What is your name?\n”); scanf(“%s”, &pname); printf(“Greeting’s %s What bring’s you to the kingdom of Tharnos?\n”, pname); printf(“I see how intresting do […]

从用户输入密码并检查它是否有字符,字母和数字

我怀疑的是,如果我输入填充数组的密码,程序运行正常。 但是,如果我输入密码,例如“apple25”,我认为它将数组中的空格计为字符,甚至将“apple25”声明为有效密码。 我该如何防止这种情况发生? 它是否将字符串终止符计为char ? 因为即使“AAPPLLEE2”也是有效密码。 #include #include #include #include #define TRUE 1 #define FALSE 0 int main() { char arr[10]; printf(“Enter a password. \n”); scanf(“%s”,arr ); // printf(arr); char ch; int i; int alp=0, dig=0, c=0; for (i=0; i=1&&dig>=1&&c>=1) { printf(“Valid Password”); } else{ printf(“Invalid Password”); } return 0; }

将2个char转换为1个int

我有2个字符:HIGH和LOW,我想把它们转换成一个对应HIGH的int +来自LOW的2个左位。 我试过像以下一样: unsigned char high; unsigned char low; high = 128; // 10000000 low= 128; // 10000000 int result; (should be high 10000000 + 2 left bites of low 10 = 1000000010) // To do return result; 编辑更清晰。 我选择的解决方案是: return high*4 + (low >> (CHAR_BIT – 2));

C编程:将Hex Int转换为Char *

我的问题是如何转换像: int i = 0x11111111; 一个字符指针? 我尝试使用itoa()函数,但它给了我一个浮点exception。

了解C中的Char数组相等性

提前抱歉无知。 我不完全理解如何比较C中的char数组。我最初将c中的两个char数组与simple ==运算符进行比较。 所以在C函数中,我会做这样的事情。 char *a = “test”; char *b = “test”; if (a == b) ..do something 但我读到我应该使用strcmp而不是==这样。 char *a = “test”; char *b = “test”; if (0 == strcmp(a, b)) ..do something 哪一个是正确的,为什么? 另一个人在做什么?

警告:多字符字符常量 |

/* Beginning 2.0 */ #include main() { printf(” %d signifies the %c of %f”,9,’rise’,17.0); return 0; } 大家好 当我编译它时,编译器发出以下警告: warning: multi-character character constant [-Wmultichar]| 输出只打印e而不是rise 。 C中不允许多个字符? 如何打印整个单词( rise )? 请帮帮我。

C中的字符比较

我试图比较两个字符,看看一个是否比另一个更大。 为了看看它们是否相等,我使用了strcmp 。 有什么类似于我可以使用的strcmp吗?

C程序打印奇怪的字符

我有一个程序,它读取文件的内容并将其保存到buf 。 在阅读内容后,它应该将两个字符复制到一个数组。 如果我没有尝试从文件中读取,但是如果我尝试从文件中读取它,则缓冲区中的printf打印出我想要的两个字符,但添加了奇怪的字符,这段代码工作正常。 我已经确认并正确保存到buf中,没有奇怪的字符。 我无法弄清楚出了什么问题……这是代码: char *buffer = (char*)malloc(2*sizeof(char)); char *dst = buffer; char *src = buf; char *end = buf + strlen(buf); char *baby = ‘\0’; while (src<= end) { strncpy(dst, src, 2); src+= 2; printf("%s\n", buffer); }

C将char附加到char *

所以我试图将char添加到char* 。 例如,我有char *word = ” “; 我也有char ch = ‘x’; 我确实append(word, ch); 使用这种方法.. void append(char* s, char c) { int len = strlen(s); s[len] = c; s[len+1] = ‘\0’; } 它给了我一个分段错误,我理解为什么我想。 因为s[len]超出范围。 我该如何制作呢? 我需要清除char* ,如果我要使用char word [500]之类的东西; 一旦附加了一些字符,我该如何清除? 它的strlen总是500吗? 提前致谢。