Tag: 字符串

确定C字符串是否是C中的有效int

我需要检查一个C字符串是否是一个有效的整数。 我试过了两个 int num=atoi(str); 和 int res=sscanf(str, “%d”, &num); 但是在两行中发送字符串”8 -9 10″只返回8,而没有指出该字符串的无效性。 有人可以建议替代方案吗?

与最相似的字符串进行字符串比较

有没有人知道如果存在给定一个字符串A和字符串B数组的算法,则将A字符串与B中的所有字符串进行比较,使输出中的字符串最相似。 对于“最相似的”,我的意思是,例如, 如果A字符串是:“hello world你好吗” 然后 “asdf asdewr你好世界怎么asfrqr你” 比以下更相似: “h2ll4 w1111 h11 111 111”

在char中为char数组赋值

有什么区别: char fast_car[15]=”Bugatti”; 和 char fast_car[15]; fast_car=”Bugatti”; 因为第二个导致编译错误: 错误:从类型’char *’分配类型’char [15]’时出现不兼容的类型 虽然第一个工作正常。 将数组中的字符串放在与数组初始化不同的位置会很有帮助。

未定义的引用`strlwr’

我的代码就像一个文本压缩器,读取普通文本并变成数字,每个单词都有一个数字。 它在DevC ++中编译但不会结束,但是它不能在Ubuntu 13.10中编译。 我收到的错误就像Ubuntu中的标题“未定义引用`strlwr’”,我的代码有点长,所以我无法在这里发布,但其中一个错误来自: //operatinal funcitons here int main() { int i = 0, select; char filename[50], textword[40], find[20], insert[20], delete[20]; FILE *fp, *fp2, *fp3; printf(“Enter the file name: “); fflush(stdout); scanf(“%s”, filename); fp = fopen(filename, “r”); fp2 = fopen(“yazi.txt”, “w+”); while (fp == NULL) { printf(“Wrong file name, please enter file name again: […]

C是否有任何添加字符串的工具?

我正在创建一个函数,它返回一个表示为树的函数的导数 / + \ * ^ / \ / \ x 5 3.14 x 与表单的节点 typedef struct node { char * fx; // function struct node * gx; // left-hand side char * op; // operator struct node * hx; // right-hand side } node; 如果节点没有子节点,例如上例中的x , 3.14 ,则其op , gx和hx为NULL ,否则其fx为NULL 。 我计算导数的函数看起来像 char […]

一种可能的算法,用于确定两个字符串是否是彼此的字谜?

我有这个想法(使用C语言)来检查由ASCII字母组成的两个字符串是否是彼此的字谜: 检查字符串是否长度相同。 检查两个字符串的所有字符的ASCII值之和是否相同。 检查两个字符串的所有字符的ASCII值的乘积是否相同。 我相信如果所有三个都是正确的,那么字符串必须是彼此的字谜。 但是,我无法certificate这一点。 有人可以帮我certificate或反驳这会起作用吗? 谢谢!

分配结构字段时,“错误:赋值给表达式,数组类型错误”(C)

我是初学C程序员,昨天我学习了C结构的使用以及这些结构可能应用于特定问题的解决方案。 然而,当我尝试使用我的C IDE(Codeblocks 16.01)来学习C编程的这个方面时,我遇到了一个奇怪的问题。 代码如下: #include #define N 30 typedef struct{ char name[N]; char surname[N]; int age; } data; int main() { data s1; s1.name=”Paolo”; s1.surname = “Rossi”; s1.age = 19; getchar(); return 0; } 在编译期间,编译器(Windows下的GCC 4.9.3-1)向我报告了一个错误 “错误:赋值给表达式,数组类型错误” 在指导上 s1.name=”Paolo” s1.surname=”Rossi” 如果我这样做的话 data s1 = {“Paolo”, “Rossi”, 19}; 有用。 我究竟做错了什么?

在C中将字符转换为二进制

我试图将一个字符转换为它的二进制表示(所以字符 – > ascii hex – >二进制)。 我知道这样做我需要转移和AND 。 但是,我的代码由于某种原因不起作用。 这就是我所拥有的。 *temp指向C字符串中的索引。 char c; int j; for (j = i-1; j >= ptrPos; j–) { char x = *temp; c = (x >> i) & 1; printf(“%d\n”, c); temp–; }

类似的String算法

我正在寻找一种算法,或者至少是关于如何在两个或多个不同的字符串中找到类似文本的操作理论…… 就像这里提出的问题一样: 查找具有相似文本的文章的算法 ,区别在于我的文本字符串只会是少数单词。 就像说我有一个字符串:“进入清澈的蓝天”,我正在与以下两个字符串进行比较:“颜色是azure色”和“在蓝色晴朗的天空” 我正在寻找一种可用于匹配两者中文本的算法,并决定它们的匹配程度。 在我的情况下,拼写和标点符号将是重要的。 我不希望它们影响发现真实文本的能力。 在上面的例子中,如果颜色参考存储为“’azure色’”,我希望它仍然能够匹配。 但是,列出的第3个字符串应该比第二个字符串更好,等等。 我敢肯定谷歌这样的地方可能会使用类似于“你是不是的意思:”的function…… *编辑* 在与朋友交谈时,他与一位撰写有关该主题的论文的人一起工作。 我想我可能会与阅读此内容的所有人分享,因为其中描述了一些非常好的方法和流程…… 这是他的论文的链接 ,我希望它对那些阅读这个问题的人以及类似字符串算法的主题有所帮助。

C的strtok()和只读字符串文字

char * strtok(char * s1,const char * s2) 重复调用此函数将字符串s1分解为“标记” – 即字符串被分解为子字符串,每个子字符串以’\ 0’结尾,其中’\ 0’替换字符串s2中包含的任何字符。 第一个调用使用字符串标记为s1; 后续调用使用NULL作为第一个参数。 返回指向当前标记开头的指针; 如果没有更多令牌,则返回NULL。 嗨, 我一直在尝试使用strtok ,并发现如果我将char*传入s1 ,我会遇到分段错误。 如果我传入char[] , strtok工作正常。 为什么是这样? 我google了一下,原因似乎是char*如何只读, char[]是可写的。 将非常感谢更彻底的解释。