我試圖編寫一個程序,允許我在輸入後查找最長的字符串名稱。到目前爲止:查找最長的字符串名稱和長度
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(void){
int i;
int tot[20];
int len; /*length of string*/
char nam[20]; /*the variable the user will be entering*/
char nnam[20]; /*new name variable.
where the longest is kept*/
for (i = 0; i < 6; i++){ /*user input of 6 strings*/
printf("Enter a string: ");
scanf("%s", nam);
len = strcmp(nnam, nam); /*comparing length of input
to stored string*/
if (len > 0){ /*condition*/
strcpy(nnam, nam); /*should copy the largest
value into nnam*/
}
}
printf("The longest string is: %s\n", nnam);
printf("The string length is: %d\n", strlen(nnam));
return 0;
}
這似乎例如工作:
FIRST OUTPUT:
Enter a string: red
Enter a string: red
Enter a string: purple
Enter a string: red
Enter a string: red
Enter a string: red
The longest string is: purple
The string length is: 6
但後來發生這種情況:
SECOND OUTPUT:
Enter a string: blue
Enter a string: black
Enter a string: red
Enter a string: purple
Enter a string: gold
Enter a string: green
The longest string is: black
The string length is: 5
而且這樣的:
THIRD OUTPUT:
Enter a string: red
Enter a string: red
Enter a string: purple
Enter a string: gold
Enter a string: red
Enter a string: red
The longest string is: gold
The string length is: 4
不知道發生了什麼這裏。有什麼建議麼?
你怎麼能指望'LEN = STRCMP(nnam,NAM);'會給你的字符串長度的比較? – tod 2014-12-07 06:31:43
我認爲這是因爲我認爲strcmp函數已經在查看字符串長度的差異了。猜猜我錯了。 – 2014-12-07 06:35:01
我回滾了你的「固定」編輯。 「解決」問題,並添加「解決」到yheir標題,將Stack Overflow的目的作爲*問題和答案*存儲庫。作爲新成員,您可能不知道這一點;請參閱[入門教程](http://stackoverflow.com/tour)並閱讀[幫助中心](http://stackoverflow.com/help)。如果沒有現有答案有幫助,您可以自己添加答案。 – usr2564301 2014-12-07 10:33:24